diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000000..599f57a336 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,26 @@ +name: release + +on: + push: + tags: + - v*.*.* + +jobs: + goreleaser: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + submodules: true + - name: Set up Go + uses: actions/setup-go@v2 + with: + go-version: 1.17 + - name: Run GoReleaser + uses: goreleaser/goreleaser-action@v2 + with: + version: v0.183.0 + args: release --rm-dist + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index a9ca864199..fd0a0c95ac 100644 --- a/.gitignore +++ b/.gitignore @@ -13,4 +13,7 @@ helm/test-values.yaml *.swp golangci-lint atlantis -.devcontainer \ No newline at end of file +.devcontainer + +# gitreleaser +dist/ diff --git a/.goreleaser.yml b/.goreleaser.yml new file mode 100644 index 0000000000..248d424d80 --- /dev/null +++ b/.goreleaser.yml @@ -0,0 +1,34 @@ +env: + - CGO_ENABLED=0 +builds: + - targets: + - darwin_amd64 + - darwin_arm64 + - linux_386 + - linux_amd64 + - linux_arm + - linux_arm64 + - windows_386 + - windows_amd64 + +archives: + - id: zip + name_template: "{{ .ProjectName }}_{{ .Os }}_{{ .Arch }}" + format: zip + files: + - none* + +checksum: + name_template: 'checksums.txt' + +changelog: + skip: true + +release: + github: + owner: runatlantis + name: atlantis + draft: true + +snapshot: + name_template: "{{ incpatch .Version }}-next" diff --git a/scripts/binary-release.sh b/scripts/binary-release.sh deleted file mode 100755 index ffbf4c229d..0000000000 --- a/scripts/binary-release.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/bash - -# define architecture we want to build -XC_ARCH=${XC_ARCH:-"386 amd64 arm arm64"} -XC_OS=${XC_OS:-linux darwin} -XC_EXCLUDE_OSARCH="!darwin/arm !darwin/386 !darwin/arm64" - -# clean up -echo "-> running clean up...." -rm -rf output/* - -if ! which gox > /dev/null; then - echo "-> installing gox..." - # Need to run go get in a separate dir - # so it doesn't modify our go.mod. - SRC_DIR=$(pwd) - cd $(mktemp -d) - go mod init example.com/m - go get -u github.com/mitchellh/gox - cd "$SRC_DIR" -fi - -# build -# we want to build statically linked binaries -export CGO_ENABLED=0 -echo "-> building..." -gox \ - -os="${XC_OS}" \ - -arch="${XC_ARCH}" \ - -osarch="${XC_EXCLUDE_OSARCH}" \ - -output "output/{{.OS}}_{{.Arch}}/atlantis" \ - . - -# Zip and copy to the dist dir -echo "" -echo "Packaging..." -for PLATFORM in $(find ./output -mindepth 1 -maxdepth 1 -type d); do - OSARCH=$(basename ${PLATFORM}) - echo "--> ${OSARCH}" - - pushd $PLATFORM >/dev/null 2>&1 - zip ../atlantis_${OSARCH}.zip ./* - popd >/dev/null 2>&1 -done - -echo "" -echo "" -echo "-----------------------------------" -echo "Output:" -ls -alh output/