CI: move download caching to a composite action

I intend to split the "CI" workflow into a "check" and "build for
cachix" workflow, and both will use this action.
This commit is contained in:
Marien Zwart 2024-06-22 15:37:19 +10:00
parent 6899c075ca
commit 8ceb9a7431
No known key found for this signature in database
2 changed files with 42 additions and 20 deletions

View file

@ -0,0 +1,40 @@
# Copyright 2024 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: 'Cache downloads'
description: "Cache Nix's git and tarball cache in GitHub's action cache."
runs:
using: "composite"
steps:
# Update the caches daily, flush the cache monthly.
- name: Set cache keys
id: cache-keys
shell: bash
run: |
{
echo "key=$(date +'%Y-%m-%d')"
echo "restore=$(date +'%Y-%m-')"
} >> "$GITHUB_OUTPUT"
- name: Cache git checkouts
uses: actions/cache@v4
with:
path: ~/.cache/nix/gitv3
key: nix-gitv3-cache-${{ steps.cache-keys.outputs.key }}
restore-keys: nix-gitv3-cache-${{ steps.cache-keys.outputs.restore }}
- name: Cache tarballs
uses: actions/cache@v4
with:
path: ~/.cache/nix/tarball-cache
key: nix-tarball-cache-${{ steps.cache-keys.outputs.key }}
restore-keys: nix-tarball-cache-${{ steps.cache-keys.outputs.restore }}

View file

@ -58,26 +58,8 @@ jobs:
nix flake update --commit-lock-file nix flake update --commit-lock-file
- name: Check flake.lock - name: Check flake.lock
uses: DeterminateSystems/flake-checker-action@main uses: DeterminateSystems/flake-checker-action@main
# Update the caches daily, flush the cache monthly. - name: Cache downloads
- name: Set cache keys uses: ./.github/actions/cache-downloads
id: cache-keys
run: |
{
echo "key=$(date +'%Y-%m-%d')"
echo "restore=$(date +'%Y-%m-')"
} >> "$GITHUB_OUTPUT"
- name: Cache git checkouts
uses: actions/cache@v4
with:
path: ~/.cache/nix/gitv3
key: nix-gitv3-cache-${{ steps.cache-keys.outputs.key }}
restore-keys: nix-gitv3-cache-${{ steps.cache-keys.outputs.restore }}
- name: Cache tarballs
uses: actions/cache@v4
with:
path: ~/.cache/nix/tarball-cache
key: nix-tarball-cache-${{ steps.cache-keys.outputs.key }}
restore-keys: nix-tarball-cache-${{ steps.cache-keys.outputs.restore }}
- name: nix flake check - name: nix flake check
run: nix flake check -L --show-trace run: nix flake check -L --show-trace
- name: Build packages for Cachix - name: Build packages for Cachix