name: Build/Release permissions: contents: write on: push: branches: - main jobs: release: runs-on: windows-latest steps: - name: Check out repository uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: 20 cache: npm - name: Build/release Electron app uses: samuelmeuli/action-electron-builder@v1 with: - name: Calculate release version id: version shell: pwsh env: GH_TOKEN: ${{ secrets.GH_TOKEN != '' && secrets.GH_TOKEN || secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | $version = node scripts/ci/update-version.js if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } "version=$version" | Out-File -FilePath $env:GITHUB_OUTPUT -Encoding utf8 -Append github_token: ${{ secrets.GH_TOKEN != '' && secrets.GH_TOKEN || secrets.GITHUB_TOKEN }} release: ${{ startsWith(github.ref, 'refs/tags/v') }} args: --win --x64 --publish always github_token: ${{ secrets.GH_TOKEN != '' && secrets.GH_TOKEN || secrets.GITHUB_TOKEN }} release: true GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Upload installer artifact if: always() uses: actions/upload-artifact@v4 with: name: windows-installer path: | dist/**/*.exe name: windows-installer-${{ steps.version.outputs.version }}