on: release: types: [published] name: Build Release Binary (Linux) jobs: build: name: Build Release Binary runs-on: ubuntu-22.04 permissions: contents: read steps: - name: Checkout repository uses: actions/checkout@v3 - name: Install dependencies run: sudo apt install libssl-dev - name: Build binary run: make - name: Upload release artifact uses: actions/upload-artifact@v4 with: name: git-crypt-artifacts path: git-crypt upload: name: Upload Release Binary runs-on: ubuntu-latest needs: build permissions: contents: write steps: - name: Download release artifact uses: actions/download-artifact@v4 with: name: git-crypt-artifacts - name: Upload release asset uses: actions/github-script@v6 with: github-token: ${{ secrets.GITHUB_TOKEN }} script: | const fs = require("fs").promises; const { repo: { owner, repo }, sha } = context; await github.rest.repos.uploadReleaseAsset({ owner, repo, release_id: ${{ github.event.release.id }}, name: 'git-crypt-${{ github.event.release.name }}-linux-x86_64', data: await fs.readFile('git-crypt'), });