diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..cae055c --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,47 @@ +name: Release Monaco Project + +on: + push: + tags: + - 'v*' # Triggers on version tags like v1.0.0, v1.1.0-beta, etc. + +jobs: + build-and-release: + runs-on: ubuntu-latest + strategy: + matrix: + go-version: [1.22.3] # Adjust to your Go version + os: [linux, darwin, windows] + arch: [amd64, arm64] + exclude: + - os: darwin + arch: arm64 + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: ${{ matrix.go-version }} + + - name: Build binary + env: + GOOS: ${{ matrix.os }} + GOARCH: ${{ matrix.arch }} + run: | + cd backend + go mod tidy + GOOS=$GOOS GOARCH=$GOARCH go build -o monaco-${{ matrix.os }}-${{ matrix.arch }} . + + - name: Create Release + uses: softprops/action-gh-release@v2 + if: startsWith(github.ref, 'refs/tags/') + with: + files: | + backend/monaco-${{ matrix.os }}-${{ matrix.arch }} + draft: false + prerelease: false + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file