-
-
Notifications
You must be signed in to change notification settings - Fork 424
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Remove runner os from LFS keys * Add atom data sparse flag to cache atom data * Descriptive key names * Cache key documentation * Test commit * Add additional workflow to prevent race conditions * Correct called workflow path * Add separate job to check lfs * Create LFS files * Do not cache on merge refs * Do not do lookup only * Boolean check * Boolean check * Test cache hit * Checkout id issue * Typo fixes, better descriptions
- Loading branch information
1 parent
ba33d7b
commit f4aa959
Showing
8 changed files
with
148 additions
and
36 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
name: Save LFS Cache | ||
|
||
on: | ||
workflow_call: | ||
inputs: | ||
atom-data-sparse: | ||
description: "If true, only downloads atom_data/kurucz_cd23_chianti_H_He.h5" | ||
required: false | ||
default: false | ||
type: boolean | ||
regression-data-repo: | ||
description: "Repository containing regression data (format: owner/repo)" | ||
required: false | ||
default: "tardis-sn/tardis-regression-data" | ||
type: string | ||
|
||
defaults: | ||
run: | ||
shell: bash -l {0} | ||
|
||
concurrency: | ||
# Only one workflow can run at a time | ||
# the workflow group is a unique identifier and contains the workflow name, pull request number, atom data sparse, and regression data repo | ||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}-${{ inputs.atom-data-sparse == 'true' && 'atom-data-sparse' || 'full-data' }}-${{ inputs.regression-data-repo }} | ||
cancel-in-progress: true | ||
|
||
|
||
jobs: | ||
lfs-cache: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
repository: ${{ inputs.regression-data-repo }} | ||
path: tardis-regression-data | ||
sparse-checkout: ${{ inputs.atom-data-sparse == 'true' && 'atom_data/kurucz_cd23_chianti_H_He.h5' || '' }} | ||
|
||
- name: Create LFS file list | ||
run: | | ||
if [ "${{ inputs.atom-data-sparse }}" == "true" ]; then | ||
echo "Using atom data sparse checkout" | ||
echo "atom_data/kurucz_cd23_chianti_H_He.h5" > .lfs-files-list | ||
else | ||
echo "Using full repository checkout" | ||
git lfs ls-files -l | cut -d' ' -f1 | sort > .lfs-files-list | ||
fi | ||
working-directory: tardis-regression-data | ||
|
||
|
||
- name: Test cache availability | ||
uses: actions/cache/restore@v4 | ||
id: test-lfs-cache-regression-data | ||
with: | ||
path: tardis-regression-data/.git/lfs | ||
key: tardis-regression-${{ inputs.atom-data-sparse == 'true' && 'atom-data-sparse' || 'full-data' }}-${{ hashFiles('tardis-regression-data/.lfs-files-list') }}-${{ inputs.regression-data-repo }}-v1 | ||
lookup-only: true | ||
|
||
- name: Git LFS Pull Atom Data | ||
run: git lfs pull --include-ref=atom_data/kurucz_cd23_chianti_H_He.h5 | ||
if: ${{ inputs.atom-data-sparse == true && steps.test-lfs-cache-regression-data.outputs.cache-hit != 'true' }} | ||
working-directory: tardis-regression-data | ||
|
||
- name: Git LFS Pull Full Data | ||
run: git lfs pull | ||
if: ${{ inputs.atom-data-sparse == false && steps.test-lfs-cache-regression-data.outputs.cache-hit != 'true' }} | ||
working-directory: tardis-regression-data | ||
|
||
- name: Git LFS Checkout | ||
run: git lfs checkout | ||
working-directory: tardis-regression-data | ||
|
||
- name: Save LFS cache if not found | ||
uses: actions/cache/save@v4 | ||
with: | ||
path: tardis-regression-data/.git/lfs | ||
key: tardis-regression-${{ inputs.atom-data-sparse == true && 'atom-data-sparse' || 'full-data' }}-${{ hashFiles('tardis-regression-data/.lfs-files-list') }}-${{ inputs.regression-data-repo }}-v1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters