name: Build on: push: branches: - release - beta concurrency: group: ${{ github.ref }} cancel-in-progress: false jobs: build: strategy: matrix: build: - os: ubuntu-latest task: linux - os: windows-latest task: win - os: macos-latest task: mac runs-on: ${{ matrix.build.os }} steps: - if: matrix.build.os == 'ubuntu-latest' run: sudo snap install snapcraft --classic - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 24 - run: npm install -g yarn - run: yarn - id: create_token # get ReleaseBot access token uses: actions/create-github-app-token@v1 with: app-id: ${{ secrets.RELEASE_BOT_APP_ID }} private-key: ${{ secrets.RELEASE_BOT_PRIVATE_KEY }} - name: Semantic Release uses: cycjimmy/semantic-release-action@v4 id: semantic # Need an `id` for output variables env: GITHUB_TOKEN: ${{ steps.create_token.outputs.token }} - run: yarn build if: steps.semantic.outputs.new_release_published == 'true' - run: yarn prepare-release if: steps.semantic.outputs.new_release_published == 'true' - run: yarn package ${{ matrix.build.task }} if: steps.semantic.outputs.new_release_published == 'true' env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAPCRAFT_STORE_CREDENTIALS }}