chore: release v0.19.0 #104
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*.*.*' | |
| jobs: | |
| build-and-release: | |
| name: Build and Release | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| packages: write | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Bun | |
| uses: oven-sh/setup-bun@v1 | |
| with: | |
| bun-version: latest | |
| - name: Install dependencies | |
| run: bun install --frozen-lockfile | |
| - name: Compile Binaries | |
| # compiling each platform separately | |
| # Note: Each compile script in package.json runs build:frontend. | |
| # This is acceptable for correctness to ensure each binary is built with the latest assets. | |
| env: | |
| APP_VERSION: ${{ github.ref_name }} | |
| run: | | |
| bun run compile:linux | |
| bun run compile:macos | |
| bun run compile:windows | |
| - name: Log in to the Container registry | |
| uses: docker/login-action@v3 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Extract metadata (tags, labels) for Docker | |
| id: meta | |
| uses: docker/metadata-action@v5 | |
| with: | |
| images: ghcr.io/${{ github.repository }} | |
| - name: Build and push Docker image | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: . | |
| push: true | |
| tags: ${{ steps.meta.outputs.tags }} | |
| labels: ${{ steps.meta.outputs.labels }} | |
| build-args: | | |
| APP_VERSION=${{ github.ref_name }} | |
| - name: Extract Release Notes | |
| run: | | |
| awk '/^## v[0-9]+\.[0-9]+\.[0-9]+/ { if (p) exit; p=1; next } p' CHANGELOG.md > RELEASE_NOTES.md | |
| - name: Validate Release Notes | |
| run: | | |
| if [ ! -s RELEASE_NOTES.md ]; then | |
| echo "ERROR: Release notes file is empty!" | |
| exit 1 | |
| fi | |
| - name: Create Release | |
| uses: softprops/action-gh-release@v1 | |
| with: | |
| files: | | |
| plexus-linux | |
| plexus-macos | |
| plexus.exe | |
| draft: false | |
| prerelease: false | |
| body_path: RELEASE_NOTES.md |