Skip to content

reorder

reorder #214

Workflow file for this run

on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
push:
# Cancel previous versions of this job that are still running.
concurrency:
group: nightly
cancel-in-progress: true
jobs:
update-flake:
runs-on: [self-hosted, linux, nix]
steps:
- name: checkout
uses: actions/checkout@v4
- name: update
run: ./update.sh
# Commit the update onto a new branch
- name: commit
run: |
[[ $(git diff) != "" ]] || exit 0
git config --local user.name "Prosecco"
git config --local user.email "[email protected]"
git checkout -b nightly
git commit -am "nightly update"
git push origin --force nightly:nightly
# This would be nicer as a matrix, but that hits limits of what github actions can currenctly express. See e.g.:
# - https://github.com/orgs/community/discussions/17245
# - https://github.com/orgs/community/discussions/26640
# - https://github.com/actions/runner/pull/2477
hax:
needs: update-flake
runs-on: [self-hosted, linux, nix]
steps:
- name: checkout
uses: actions/checkout@v4
with:
ref: nightly
# - run: nix build -L --no-link ".#hax"
- run: true
charon:
needs: update-flake
runs-on: [self-hosted, linux, nix]
steps:
- name: checkout
uses: actions/checkout@v4
with:
ref: nightly
# - run: nix build -L --no-link ".#charon"
- run: true
eurydice:
needs: update-flake
runs-on: [self-hosted, linux, nix]
steps:
- name: checkout
uses: actions/checkout@v4
with:
ref: nightly
# - run: nix build -L --no-link ".#eurydice"
- run: false
ml-kem:
needs: update-flake
runs-on: [self-hosted, linux, nix]
steps:
- name: checkout
with:
ref: nightly
uses: actions/checkout@v4
# - run: nix build -L --no-link ".#ml-kem"
- run: false
bertie:
needs: update-flake
runs-on: [self-hosted, linux, nix]
steps:
- name: checkout
with:
ref: nightly
uses: actions/checkout@v4
# - run: nix build -L --no-link ".#bertie"
- run: true
message_results:
needs: [hax, charon, eurydice, ml-kem, bertie]
runs-on: [self-hosted, linux, nix]
if: ${{ success() || failure() }} # Will always run unless canceled
steps:
- name: checkout
uses: actions/checkout@v4
with:
ref: nightly
- name: generate zulip message
env:
RUN: ${{ github.run_id }}
RESULTS: ${{ toJSON(needs) }}
run: |
echo "$RESULTS" > results.json
{
echo 'MSG<<EOF'
nix shell nixpkgs#jq --command ./message.sh
echo EOF
} >> "$GITHUB_ENV"
rm results.json
cat "$GITHUB_ENV"
# - name: send zulip info message
# uses: slackapi/[email protected]
# with:
# payload: |
# { "text": ${{ toJSON(env.MSG) }} }
# env:
# SLACK_WEBHOOK_URL: ${{ secrets.ZULIP_WEBHOOK_URL }}
# - name: send zulip error message
# if: ${{ failure() }}
# uses: slackapi/[email protected]
# with:
# payload: |
# { "text": "Unexpected Error: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" }
# env:
# SLACK_WEBHOOK_URL: ${{ secrets.ZULIP_WEBHOOK_URL }}
success:
needs: [hax, charon, eurydice, ml-kem, bertie, message_results]
runs-on: [self-hosted, linux, nix]
steps:
- name: checkout
uses: actions/checkout@v4
with:
ref: nightly
- name: commit the good flake.lock
run: |
[[ $(git diff) != "" ]] || exit 0
git config --local user.name "Prosecco"
git config --local user.email "[email protected]"
cp flake.lock good.lock
git commit -am "record the last-good flake lock"
# TODO: push to main if run from workflow or cron
git push