Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refresh-manifests workflow checks all platforms before committing manifests #73

Merged
merged 7 commits into from
Jun 2, 2023
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