diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 0000000..189dcc1 --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,37 @@ +# .github/workflows/release.yaml + +on: + release: + types: [created] + +permissions: + contents: write + packages: write + +jobs: + releases-matrix: + name: Release Go Binary + runs-on: ubuntu-latest + strategy: + matrix: + # build and publish in parallel: linux/386, linux/amd64, linux/arm64, windows/386, windows/amd64, darwin/amd64, darwin/arm64 + goos: [linux, windows, darwin] + goarch: [amd64, arm64] + exclude: + - goarch: arm64 + goos: windows + steps: + - name: Get Release Info + run: echo "RELEASE_TAG=${GITHUB_REF/refs\/tags\//}" >> "$GITHUB_ENV" + - uses: actions/checkout@v4 + - uses: wangyoucao577/go-release-action@v1 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + goos: ${{ matrix.goos }} + goarch: ${{ matrix.goarch }} + goversion: "https://dl.google.com/go/go1.22.5.linux-amd64.tar.gz" + project_path: "./" + binary_name: "cotton" + extra_files: README.md + ldflags: -X "main.Version=${{env.RELEASE_TAG}}" + sha256sum: true \ No newline at end of file