Skip to content

Commit

Permalink
refresh-manifests workflow checks all platforms before committing man…
Browse files Browse the repository at this point in the history
…ifests (#73)

Closes #70
Closes #71

The new workflow has three main jobs:

1. Refresh the manifests using the `refresh-manifests.sh` script and
upload the `manifests` directory to temporary workflow storage.
2. If `1.` succeeds: For all supported platforms and all major package
sets (fuel, fuel-nightly, fuel-beta-3, etc), download the new manifests
from temporary storage, add them to git staging so they get picked up by
nix, then do a test nix build. Cache the binaries on success.
3. If `2.` succeeds: Download the manifests from temporary storage,
commit them to master and push to the main master branch.
  • Loading branch information
mitchmindtree authored Jun 2, 2023
1 parent 205816b commit aa7f14c
Showing 1 changed file with 46 additions and 36 deletions.
82 changes: 46 additions & 36 deletions .github/workflows/refresh-manifests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,63 +6,48 @@ on:
workflow_dispatch:

jobs:
refresh-manifests:
name: "Refresh manifests and sync channels"
refresh-and-upload-manifests:
runs-on: ubuntu-latest
steps:
- uses: actions/[email protected]
with:
persist-credentials: false
ref: master
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v20
with:
nix_path: nixpkgs=channel:nixos-unstable
- uses: cachix/cachix-action@v12
with:
name: fuellabs
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- name: Refresh manifests
timeout-minutes: 60
run: nix run .#refresh-manifests
- name: Check and commit changes
id: commit
continue-on-error: true
run: |
git config --local user.email "[email protected]"
git config --local user.name "GitHub Action"
git add manifests
git commit -m "manifest: update"
- name: Validate nix files changed
if: steps.commit.outcome == 'success'
- run: nix run .#refresh-manifests
timeout-minutes: 120
- name: validate changed nix files
run: |
files=( $(git diff --name-only HEAD HEAD^ '*.nix') )
files=( $(git diff --name-only '*.nix') )
echo "${#files[*]} nix files changed: ${files[*]}"
if [[ "${#files[*]}" -ne 0 ]]; then
nix-instantiate --parse "${files[@]}" >/dev/null
fi
- name: Build fuel
run: nix build --print-build-logs --no-update-lock-file .#fuel
- name: Build fuel-nightly
run: nix build --print-build-logs --no-update-lock-file .#fuel-nightly
- name: Develop fuel-dev
run: nix develop --print-build-logs --no-update-lock-file .#fuel-dev
- name: Push changes
if: steps.commit.outcome == 'success'
uses: ad-m/github-push-action@master
- uses: actions/upload-artifact@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: master
name: manifests
path: manifests/

refresh-cache:
name: "Refresh cache for all platforms"
needs: refresh-manifests
download-manifests-and-nix-build:
needs: refresh-and-upload-manifests
strategy:
fail-fast: false
matrix:
package: [fuel, fuel-beta-1, fuel-beta-2, fuel-beta-3, fuel-nightly, sway-vim]
package: [fuel, fuel-beta-1, fuel-beta-2, fuel-beta-3, fuel-nightly]
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/[email protected]
- uses: actions/checkout@v3
- run: rm -r manifests
- uses: actions/download-artifact@v3
with:
name: manifests
path: manifests/
- name: stage manifests for nix build
run: git add -v manifests
- uses: cachix/install-nix-action@v20
with:
nix_path: nixpkgs=channel:nixos-unstable
Expand All @@ -71,3 +56,28 @@ jobs:
name: fuellabs
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- run: nix build --print-build-logs --no-update-lock-file .#${{ matrix.package }}

download-manifests-and-commit:
needs: [refresh-and-upload-manifests, download-manifests-and-nix-build]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
persist-credentials: false
ref: master
- run: rm -r ./manifests
- uses: actions/download-artifact@v3
with:
name: manifests
path: manifests/
- name: Check and commit changes
run: |
git config --local user.email "[email protected]"
git config --local user.name "GitHub Action"
git add manifests
git commit -m "manifest: update"
- name: Push changes
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: master

0 comments on commit aa7f14c

Please sign in to comment.