Use local reverse #39
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
branches: | |
- master | |
concurrency: | |
group: ${{ github.workflow }}-$${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
permissions: write-all | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
repository: ${{ github.event.pull_request.head.repo.full_name }} | |
ref: ${{ github.event.pull_request.head.ref }} | |
- name: Get changed files | |
id: changed-files | |
uses: tj-actions/changed-files@v40 | |
with: | |
files: | | |
*.nix | |
go.* | |
**/*.go | |
- uses: DeterminateSystems/nix-installer-action@main | |
if: steps.changed-files.outputs.any_changed == 'true' | |
- name: Run build | |
id: build | |
if: steps.changed-files.outputs.any_changed == 'true' | |
run: | | |
nix build build.nix |& tee build-result | |
BUILD_STATUS="${PIPESTATUS[0]}" | |
OLD_HASH=$(cat build-result | grep specified: | awk -F ':' '{print $2}' | sed 's/ //g') | |
NEW_HASH=$(cat build-result | grep got: | awk -F ':' '{print $2}' | sed 's/ //g') | |
echo "OLD_HASH=$OLD_HASH" >> $GITHUB_OUTPUT | |
echo "NEW_HASH=$NEW_HASH" >> $GITHUB_OUTPUT | |
exit $BUILD_STATUS | |
- name: Update PR | |
id: update-pr | |
if: failure() && steps.build.outcome == 'failure' | |
env: | |
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} | |
run: | | |
sed -i s^${{ steps.build.outputs.OLD_HASH }}^${{ steps.build.outputs.NEW_HASH }}^g default.nix | |
git config --global user.email "github-actions[bot]@users.noreply.github.com" | |
git config --global user.name "github-actions[bot]" | |
git add default.nix | |
git commit -s -m "Update vendorSha256" | |
git push origin HEAD:${{ github.head_ref }} | |
- name: Run build retry | |
id: build_retry | |
if: steps.update-pr.outcome == 'success' | |
run: nix build build.nix |