Skip to content

nixpkgs-review #366999 for lucasew #48

nixpkgs-review #366999 for lucasew

nixpkgs-review #366999 for lucasew #48

# This is a basic workflow to help you get started with Actions
name: nixpkgs-review a nixpkgs PR
run-name: 'nixpkgs-review #${{ github.event.inputs.pr }} for ${{ github.event.inputs.for }}'
# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on:
workflow_dispatch:
inputs:
pr:
description: "PR number"
type: number
required: true
extra-args:
description: "Extra args for nixpkgs-review"
type: string
default: ""
required: false
free-space:
description: "Run workflow to increase free space (tradeoff: runs faster vs runs bigger PRs)"
type: boolean
default: true
required: true
x86_64-linux:
type: boolean
description: "Build on x86_64-linux"
default: true
required: true
aarch64-darwin:
type: boolean
description: "Build on aarch64-darwin"
default: false
required: true
x86_64-darwin:
type: boolean
description: "Build on x86_64-darwin"
default: false
required: true
for:
type: string
description: "Who asked for this run"
default: "not identified"
concurrency:
group: review-${{ github.event.inputs.pr }}
cancel-in-progress: true
jobs:
comment:
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v7
env:
MESSAGE: |
# [nixpkgs-reviewd](${{github.server_url}}/${{ github.repository }}) workflow started
- **Extra args**: `${{github.event.inputs.extra-args}}`
- **Free space**: ${{github.event.inputs.free-space}}
- **Who asked**: ${{github.event.inputs.for}}
**TARGETS**
- **x86_64-linux**: ${{github.event.inputs.x86_64-linux}}
- **x86_64-darwin**: ${{github.event.inputs.x86_64-darwin}}
- **aarch64-darwin**: ${{github.event.inputs.aarch64-darwin}}
**Status and logs**: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
PR: ${{ github.event.inputs.pr }}
with:
github-token: ${{secrets.GH_TOKEN_NIXPKGS_REVIEW}}
script: |
github.rest.issues.createComment({
issue_number: process.env.PR,
owner: 'NixOS',
repo: 'nixpkgs',
body: process.env.MESSAGE
})
build-x86_64-linux:
name: 'x86_64-linux'
if: ${{ github.event.inputs.x86_64-linux == 'true' }}
runs-on: ubuntu-latest
steps:
- name: Free up space
uses: lucasew/action-i-only-care-about-nix@main
if: ${{ github.event.inputs.free-space == 'true' }}
- name: Prepare for Nix if cleaned up
run: |
sudo mkdir -p /nix/build
df -h
- name: Try to fetch nixpkgs clone from cache
id: git-nixpkgs
uses: actions/cache@v4
with:
path: |
nixpkgs
key: git-nixpkgs
- name: Fetch nixpkgs from git if not
if: steps.git-nixpkgs.outputs.cache-hit != 'true'
run: git clone https://github.com/NixOS/nixpkgs nixpkgs
- uses: DeterminateSystems/nix-installer-action@v16
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
extra-conf: |
build-dir = /nix/build
- uses: DeterminateSystems/magic-nix-cache-action@main
- name: Run review
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN_NIXPKGS_REVIEW }}
PR: ${{ github.event.inputs.pr }}
EXTRA_ARGS: ${{ github.event.inputs.extra-args }}
run: |
{ while true; do df -h; uptime; sleep 60; done } &
git config --global user.email "[email protected]"
git config --global user.name "user"
cd $GITHUB_WORKSPACE/nixpkgs
nix run nixpkgs#nixpkgs-review -- pr $PR --print-result --post-result --no-shell $EXTRA_ARGS
- uses: actions/upload-artifact@v4
with:
name: logs-x86_64-linux
path: |
~/.cache/nixpkgs-review/*/logs
/nix/var/log/nix/drvs
include-hidden-files: true
build-aarch64-darwin:
name: 'aarch64-darwin'
if: ${{ github.event.inputs.aarch64-darwin == 'true' }}
runs-on: macos-latest
steps:
- name: Try to fetch nixpkgs clone from cache
id: git-nixpkgs
uses: actions/cache@v4
with:
path: |
nixpkgs
key: git-nixpkgs
- name: Fetch nixpkgs from git if not
if: steps.git-nixpkgs.outputs.cache-hit != 'true'
run: git clone https://github.com/NixOS/nixpkgs nixpkgs
- uses: DeterminateSystems/nix-installer-action@v16
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
- uses: DeterminateSystems/magic-nix-cache-action@main
- name: Run review
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN_NIXPKGS_REVIEW }}
PR: ${{ github.event.inputs.pr }}
EXTRA_ARGS: ${{ github.event.inputs.extra-args }}
run: |
{ while true; do df -h; uptime; sleep 60; done } &
git config --global user.email "[email protected]"
git config --global user.name "user"
cd $GITHUB_WORKSPACE/nixpkgs
nix run nixpkgs#nixpkgs-review -- pr $PR --print-result --post-result --no-shell $EXTRA_ARGS
- uses: actions/upload-artifact@v4
with:
name: logs-aarch64-darwin
path: |
/nix/var/log/nix/drvs
~/.cache/nixpkgs-review/*/logs
include-hidden-files: true
build-x86_64-darwin:
name: 'x86_64-darwin'
if: ${{ github.event.inputs.x86_64-darwin == 'true' }}
runs-on: macos-13
steps:
- name: Try to fetch nixpkgs clone from cache
id: git-nixpkgs
uses: actions/cache@v4
with:
path: |
nixpkgs
key: git-nixpkgs
- name: Fetch nixpkgs from git if not
if: steps.git-nixpkgs.outputs.cache-hit != 'true'
run: git clone https://github.com/NixOS/nixpkgs nixpkgs
- uses: DeterminateSystems/nix-installer-action@v16
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
- uses: DeterminateSystems/magic-nix-cache-action@main
- name: Run review
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN_NIXPKGS_REVIEW }}
PR: ${{ github.event.inputs.pr }}
EXTRA_ARGS: ${{ github.event.inputs.extra-args }}
run: |
{ while true; do df -h; uptime; sleep 60; done } &
git config --global user.email "[email protected]"
git config --global user.name "user"
cd $GITHUB_WORKSPACE/nixpkgs
nix run nixpkgs#nixpkgs-review -- pr $PR --print-result --post-result --no-shell $EXTRA_ARGS
- uses: actions/upload-artifact@v4
with:
name: logs-x86_64-darwin
path: |
/nix/var/log/nix/drvs
~/.cache/nixpkgs-review/*/logs
include-hidden-files: true