feat: initial implementation of config file support (#79) #2
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Release | |
| on: | |
| push: | |
| tags: | |
| - 'v*' # Trigger on version tags like v1.0.0, v1.2.3, etc. | |
| workflow_dispatch: # Allow manual triggering | |
| jobs: | |
| build: | |
| name: Build All Platforms | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out code | |
| uses: actions/checkout@v4 | |
| - name: Set up Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.25' | |
| check-latest: true | |
| - name: Cache Go modules | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.cache/go-build | |
| ~/go/pkg/mod | |
| key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
| restore-keys: | | |
| ${{ runner.os }}-go- | |
| - name: Download and verify dependencies | |
| run: make deps | |
| - name: Build all platforms | |
| run: make build-all | |
| - name: Upload Linux x64 binary | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: boundary-linux-amd64 | |
| path: build/boundary-linux-amd64 | |
| retention-days: 7 | |
| - name: Upload Linux ARM64 binary | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: boundary-linux-arm64 | |
| path: build/boundary-linux-arm64 | |
| retention-days: 7 | |
| - name: Upload macOS Intel binary | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: boundary-darwin-amd64 | |
| path: build/boundary-darwin-amd64 | |
| retention-days: 7 | |
| - name: Upload macOS Apple Silicon binary | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: boundary-darwin-arm64 | |
| path: build/boundary-darwin-arm64 | |
| retention-days: 7 | |
| release: | |
| name: Create Release | |
| needs: build | |
| runs-on: ubuntu-latest | |
| if: startsWith(github.ref, 'refs/tags/') | |
| steps: | |
| - name: Check out code | |
| uses: actions/checkout@v4 | |
| - name: Set up Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.25' | |
| check-latest: true | |
| - name: Download all artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| path: ./binaries | |
| - name: Prepare release assets | |
| run: | | |
| # Create archives directly from artifacts using make target | |
| make release-archives | |
| # List all release assets | |
| ls -la archives/*.tar.gz | |
| - name: Create GitHub Release | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| files: 'archives/*.tar.gz' | |
| draft: false | |
| prerelease: ${{ contains(github.ref_name, '-') }} | |
| generate_release_notes: true | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |