1d179cbc67
Bumps [cachix/install-nix-action](https://github.com/cachix/install-nix-action) from 22 to 23. - [Release notes](https://github.com/cachix/install-nix-action/releases) - [Commits](https://github.com/cachix/install-nix-action/compare/v22...v23) --- updated-dependencies: - dependency-name: cachix/install-nix-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
49 lines
2.3 KiB
YAML
49 lines
2.3 KiB
YAML
# Checks pkgs/by-name (see pkgs/by-name/README.md)
|
|
# using the nixpkgs-check-by-name tool (see pkgs/test/nixpkgs-check-by-name)
|
|
name: Check pkgs/by-name
|
|
|
|
# The pre-built tool is fetched from a channel,
|
|
# making it work predictable on all PRs
|
|
on: pull_request
|
|
|
|
# The tool doesn't need any permissions, it only outputs success or not based on the checkout
|
|
permissions: {}
|
|
|
|
jobs:
|
|
check:
|
|
# This is x86_64-linux, for which the tool is always prebuilt on the nixos-* channels,
|
|
# as specified in nixos/release-combined.nix
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: cachix/install-nix-action@v23
|
|
- name: Determining channel to use for dependencies
|
|
run: |
|
|
echo "Determining which channel to use for PR base branch $GITHUB_BASE_REF"
|
|
if [[ "$GITHUB_BASE_REF" =~ ^(release|staging|staging-next)-([0-9][0-9]\.[0-9][0-9])$ ]]; then
|
|
# Use the release channel for all PRs to release-XX.YY, staging-XX.YY and staging-next-XX.YY
|
|
channel=nixos-${BASH_REMATCH[2]}
|
|
echo "PR is for a release branch, using release channel $channel"
|
|
else
|
|
# Use the nixos-unstable channel for all other PRs
|
|
channel=nixos-unstable
|
|
echo "PR is for a non-release branch, using unstable channel $channel"
|
|
fi
|
|
echo "channel=$channel" >> "$GITHUB_ENV"
|
|
- name: Fetching latest version of channel
|
|
run: |
|
|
echo "Fetching latest version of channel $channel"
|
|
# This is probably the easiest way to get Nix to output the path to a downloaded channel!
|
|
nixpkgs=$(nix-instantiate --find-file nixpkgs -I nixpkgs=channel:"$channel")
|
|
# This file only exists in channels
|
|
rev=$(<"$nixpkgs"/.git-revision)
|
|
echo "Channel $channel is at revision $rev"
|
|
echo "nixpkgs=$nixpkgs" >> "$GITHUB_ENV"
|
|
echo "rev=$rev" >> "$GITHUB_ENV"
|
|
- name: Fetching pre-built nixpkgs-check-by-name from the channel
|
|
run: |
|
|
echo "Fetching pre-built nixpkgs-check-by-name from channel $channel at revision $rev"
|
|
# Passing --max-jobs 0 makes sure that we won't build anything
|
|
nix-build "$nixpkgs" -A tests.nixpkgs-check-by-name --max-jobs 0
|
|
- name: Running nixpkgs-check-by-name
|
|
run: result/bin/nixpkgs-check-by-name .
|