Skip to content

Commit

Permalink
Diff server closures on pull_request
Browse files Browse the repository at this point in the history
Also updated the triggers, only building on pushes to main since the
rest will eventually be a PR to main, so that the we can ditch the avoid
duplicates action.
  • Loading branch information
e1mo committed Jul 24, 2023
1 parent c1eebe1 commit 926cbdc
Showing 1 changed file with 34 additions and 18 deletions.
52 changes: 34 additions & 18 deletions .github/workflows/build-systems.yaml
Original file line number Diff line number Diff line change
@@ -1,33 +1,20 @@
name: "Build system config"
on:
pull_request:
workflow_dispatch:
push:
branches: [ main ]

jobs:
avoid_duplicates:
runs-on: ubuntu-latest
outputs:
should_skip: ${{ steps.skip_check.outputs.should_skip }}
steps:
- id: skip_check
uses: fkirc/skip-duplicate-actions@v5
with:
# All of these options are optional, so you can remove them if you are happy with the defaults
concurrent_skipping: 'same_content_newer'
skip_after_successful_duplicate: 'true'
do_not_skip: '["workflow_dispatch", "schedule"]'
build:
runs-on: ubuntu-latest
needs: avoid_duplicates
if: needs.avoid_duplicates.outputs.should_skip != 'true'
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: cachix/install-nix-action@v20
with:
github_access_token: ${{ secrets.GITHUB_TOKEN }}
#- uses: cachix/cachix-action@v12
# with:
# name: chaos-jetzt-nixfiles
# authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- name: nix flake check
run: |
nix flake check --no-build
Expand All @@ -54,3 +41,32 @@ jobs:
echo -e "\x1b[32;1mSuccessfully built .#nixosConfigurations.${host}\x1b[0m"
echo "| ${host} | \`${out_path}\` |" >> $GITHUB_STEP_SUMMARY
done
- name: Diff closures
# Since this is only triggered by pushes to main, no need to compare to main for pushes
if: github.event_name != 'push'
run: |
set -x
# Compare to pull_request_target or, if this has no PR-Target, main
target_ref="${GITHUB_BASE_REF-main}"
target_ref="origin/${target_ref/#refs\/heads\//}"
if [[ $GITHUB_REF == "target/refs/main" ]]; then
echo "Using commit hash"
# If triggered on main, compare with the previous commit
target_ref="$(git log HEAD~1 -1 --format=format:"%H")"
fi
echo -e "## Closure differences\n" >> $GITHUB_STEP_SUMMARY
echo "Comparing current ($(git rev-parse --abbrev-ref HEAD), $(git rev-parse --verify HEAD)) to ${target_ref} ($(git rev-parse $target_ref))" >> $GITHUB_STEP_SUMMARY
git log --oneline
for host in $(nix flake show . --json | jq ".nixosConfigurations|keys[]" -r); do
echo "::group::Diff-closures for ${host}"
drv="nixosConfigurations.$host.config.system.build.toplevel"
diff_cmd="nix store diff-closures git+file:.?ref=${target_ref}#${drv} .#${drv}"
# Get the nice and colorfull output for the logs, running twice won't (significantly) prolong the runtime
$diff_cmd
echo -e "<details>\n<summary>Dif for ${host}</summary>\n" >> $GITHUB_STEP_SUMMARY
echo "```" >> $GITHUB_STEP_SUMMARY
$diff_cmd | sed -e 's/\x1b\[[0-9;]*m//g' >> $GITHUB_STEP_SUMMARY
echo "```" >> $GITHUB_STEP_SUMMARY
echo -e "\n</details>" >> $GITHUB_STEP_SUMMARY
echo "::endgroup::"
done

0 comments on commit 926cbdc

Please sign in to comment.