name: Publish release on: workflow_run: workflows: ["CI"] types: - completed concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: publish: if: ${{ github.event.workflow_run.conclusion == 'success' }} runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 - name: Record latest release version id: recorded_release_version # Note: we find the latest non-'update to latest binary release' commit here, which is not # necessarily HEAD because another build could have succeeded before us and HEAD may now refer # to 'update to latest binary release' instead of the commit we were building. # By doing this, we ensure any update we push would refer to the absolute latest binary # release even if *this* CI run is older. run: echo "recorded_release_version=$(git log --oneline | grep -v 'update to latest binary release' | head -n1 | cut -d " " -f1)" >> $GITHUB_ENV # - name: Publish release # run: echo "TODO(build-system): gh CLI has no way to mark draft as published?" # env: # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Checkout hexops/mach monorepo uses: actions/checkout@v2 with: repository: hexops/mach token: ${{ secrets.HEXOPS_MACH_GPU_DAWN_PUSH }} - name: 'gpu/dawn: update hard-coded binary release version' env: RELEASE_COMMIT: ${{env.recorded_release_version}} run: | sed -i "/binary_version: \[\]const u8 =/c\ binary_version: []const u8 = \"release-$RELEASE_COMMIT\"," ./libs/gpu-dawn/sdk.zig - name: 'gpu/dawn: use latest binary release' run: | git config user.name 'Release automation' git config user.email 'stephen@hexops.com' git add . git commit -m 'gpu-dawn: update to latest binary release' git push -u origin HEAD