| #!/bin/bash |
| |
| _cleanup(){ |
| rm -rf dist shellcheck || true |
| } |
| |
| build_linux() { |
| # Linux Docker image |
| name="$DOCKER_BASE" |
| DOCKER_BUILDS="$DOCKER_BUILDS $name" |
| docker build -t "$name:current" . |
| docker run "$name:current" --version |
| printf '%s\n' "#!/bin/sh" "echo 'hello world'" > myscript |
| docker run -v "$PWD:/mnt" "$name:current" myscript |
| |
| # Copy static executable from docker image |
| id=$(docker create "$name:current") |
| docker cp "$id:/bin/shellcheck" "shellcheck" |
| docker rm "$id" |
| ls -l shellcheck |
| ./shellcheck myscript |
| for tag in $TAGS |
| do |
| cp "shellcheck" "deploy/shellcheck-$tag.linux-x86_64"; |
| done |
| |
| # Linux Alpine based Docker image |
| name="$DOCKER_BASE-alpine" |
| DOCKER_BUILDS="$DOCKER_BUILDS $name" |
| sed -e '/DELETE-MARKER/,$d' Dockerfile > Dockerfile.alpine |
| docker build -f Dockerfile.alpine -t "$name:current" . |
| docker run "$name:current" sh -c 'shellcheck --version' |
| _cleanup |
| } |
| |
| build_aarch64() { |
| # Linux aarch64 static executable |
| docker run -v "$PWD:/mnt" koalaman/aarch64-builder 'buildsc' |
| for tag in $TAGS |
| do |
| cp "shellcheck" "deploy/shellcheck-$tag.linux-aarch64" |
| done |
| } |
| |
| |
| build_armv6hf() { |
| # Linux armv6hf static executable |
| docker run -v "$PWD:/mnt" koalaman/armv6hf-builder -c 'compile-shellcheck' |
| for tag in $TAGS |
| do |
| cp "shellcheck" "deploy/shellcheck-$tag.linux-armv6hf"; |
| done |
| _cleanup |
| } |
| |
| build_windows() { |
| # Windows .exe |
| docker run --user="$UID" -v "$PWD:/appdata" koalaman/winghc cuib |
| for tag in $TAGS |
| do |
| cp "dist/build/ShellCheck/shellcheck.exe" "deploy/shellcheck-$tag.exe"; |
| done |
| _cleanup |
| } |
| |
| build_osx() { |
| # Darwin x86_64 static executable |
| brew install cabal-install pandoc gnu-tar |
| sudo ln -s /usr/local/bin/gsha512sum /usr/local/bin/sha512sum |
| sudo ln -s /usr/local/bin/gtar /usr/local/bin/tar |
| export PATH="/usr/local/bin:$PATH" |
| |
| cabal update |
| cabal install --dependencies-only |
| cabal build shellcheck |
| for tag in $TAGS |
| do |
| cp "dist/build/shellcheck/shellcheck" "deploy/shellcheck-$tag.darwin-x86_64"; |
| done |
| _cleanup |
| } |
| |