diff --git a/.github/workflows/release-runner.yml b/.github/workflows/release-runner.yml new file mode 100644 index 000000000..1ef0b7899 --- /dev/null +++ b/.github/workflows/release-runner.yml @@ -0,0 +1,54 @@ +name: Release runner + +on: + workflow_dispatch: + inputs: + bundle-tag: + description: 'Tag of the bundle release (e.g., "codeql-bundle-20200826")' + required: false + +jobs: + release-runner: + runs-on: ubuntu-latest + env: + RELEASE_TAG: "${{ github.event.inputs.bundle-tag }}" + + strategy: + matrix: + extension: ["linux", "macos", "win.exe"] + + steps: + - uses: actions/checkout@v2 + + - name: Build runner + run: | + cd runner + npm install + npm run build-runner + + - uses: actions/upload-artifact@v2 + with: + name: codeql-runner-${{matrix.extension}} + path: runner/dist/codeql-runner-${{matrix.extension}} + + - name: Resolve Upload URL for the release + if: ${{ github.event.inputs.bundle-tag != null }} + id: save_url + run: | + UPLOAD_URL=$(curl -sS \ + "https://api.github.com/repos/${GITHUB_REPOSITORY}/releases/tags/${RELEASE_TAG}" \ + -H "Accept: application/json" \ + -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" | jq .upload_url | sed s/\"//g) + echo ${UPLOAD_URL} + echo "::set-output name=upload_url::${UPLOAD_URL}" + + - name: Upload Platform Package + if: ${{ github.event.inputs.bundle-tag != null }} + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.save_url.outputs.upload_url }} + asset_path: runner/dist/codeql-runner-${{matrix.extension}} + asset_name: codeql-runner-${{matrix.extension}} + asset_content_type: application/octet-stream