diff --git a/.github/actions/cache/action.yml b/.github/actions/cache/action.yml new file mode 100644 index 0000000..4bdb627 --- /dev/null +++ b/.github/actions/cache/action.yml @@ -0,0 +1,39 @@ +# 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 + 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 }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9d3b75c..5e8ac99 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -58,26 +58,8 @@ jobs: nix flake update --commit-lock-file - name: Check flake.lock uses: DeterminateSystems/flake-checker-action@main - # Update the caches daily, flush the cache monthly. - - name: Set cache keys - 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: Cache downloads + uses: ./.github/actions/cache-downloads - name: nix flake check run: nix flake check -L --show-trace - name: Build packages for Cachix