Skip to content

Commit

Permalink
Cache generate-assets output in CI (#1081)
Browse files Browse the repository at this point in the history
  • Loading branch information
BD103 committed Mar 9, 2024
1 parent 8bcb476 commit cbd158c
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 23 deletions.
43 changes: 20 additions & 23 deletions .github/workflows/ci.yml
Expand Up @@ -86,31 +86,28 @@ jobs:
steps:
- uses: actions/checkout@v4

- uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
generate-assets/target/
key: ${{ runner.os }}-generate-assets-${{ hashFiles('generate-assets/Cargo.toml') }}

- name: Get cache key
id: cache-key
run: echo "key=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT

- name: Get crates.io datadump from cache
uses: actions/cache@v4
with:
path: generate-assets/data
key: ${{ runner.os }}-${{ steps.cache-key.outputs.key }}
- name: Get current date
id: date
run: echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT

# Uses the generate-assets cache, which is updated in deploy.yml
- name: Restore cached assets
# Do not use cache when in merge queue
if: ${{ github.event_name != 'merge_group' }}
id: restore-cached-assets
uses: actions/cache/restore@v4
with:
# Must be kept in sync with deploy.yml
path: content/assets
key: assets-${{ steps.date.outputs.date }}-${{ hashFiles('generate-assets/**/*.rs', 'generate-assets/Cargo.toml', 'generate-assets/generate_assets.sh') }}

- name: "Build Bevy Assets"
run: >
cd generate-assets &&
export GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} &&
./generate_assets.sh
# Only run if in merge queue or if no cache was found
if: ${{ github.event_name == 'merge_group' || !steps.restore-cached-assets.outputs.cache-hit }}
working-directory: generate-assets
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: ./generate_assets.sh

- uses: actions/upload-artifact@v4
with:
Expand Down
7 changes: 7 additions & 0 deletions .github/workflows/deploy.yml
Expand Up @@ -48,3 +48,10 @@ jobs:
PAGES_BRANCH: gh-pages
BUILD_DIR: .
TOKEN: ${{ secrets.CART_PAT }}

# Caches output of generate-assets for use in ci.yml
- name: Update generate-assets cache
uses: actions/cache/save@v4
with:
path: content/assets
key: assets-${{ steps.date.outputs.date }}-${{ hashFiles('generate-assets/**/*.rs', 'generate-assets/Cargo.toml', 'generate-assets/generate_assets.sh') }}

0 comments on commit cbd158c

Please sign in to comment.