name: build on: release: types: [created] permissions: contents: write jobs: build: strategy: matrix: include: - os: ubuntu-latest output: confy-linux - os: macos-latest output: confy-macos - os: windows-latest output: confy-windows.exe runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - name: set up python uses: actions/setup-python@v5 with: python-version: '3.13' - name: install pyinstaller run: pip install pyinstaller - name: build run: pyinstaller --onefile main.py --name ${{ matrix.output }} - name: get release upload url id: get_release uses: actions/github-script@v7 with: script: | const release = await github.rest.repos.getReleaseByTag({ owner: context.repo.owner, repo: context.repo.repo, tag: context.ref.replace('refs/tags/', '') }); return release.data.upload_url; result-encoding: string - name: upload binary uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.get_release.outputs.result }} asset_path: dist/${{ matrix.output }} asset_name: ${{ matrix.output }} asset_content_type: application/octet-stream