3535#
3636# Performance Improvements:
3737# - Quick feedback: 25-30 min → 2-3 min (90% faster)
38- # - Coverage upload: 25-30 min → 8-12 min (60% faster)
38+ # - Coverage upload: 25-30 min → 8-12 min (60% faster)
3939# - Failed PRs: 25-30 min → 3-5 min (85% faster)
4040# - Successful PRs: 25-30 min → 20-25 min (20% faster)
4141#
@@ -50,18 +50,18 @@ name: firecrown-ci
5050on :
5151 push :
5252 branches :
53- - ' master'
53+ - " master"
5454 paths-ignore :
55- - ' docs/**/*.md'
56- - ' *.md'
55+ - " docs/**/*.md"
56+ - " *.md"
5757 pull_request :
5858 branches :
59- - ' * '
59+ - " * "
6060 paths-ignore :
61- - ' docs/**/*.md'
62- - ' *.md'
61+ - " docs/**/*.md"
62+ - " *.md"
6363 schedule :
64- - cron : ' 47 1 * * *'
64+ - cron : " 47 1 * * *"
6565
6666env :
6767 CONDA_ENV : firecrown_developer
@@ -72,12 +72,12 @@ jobs:
7272 name : Quick validation
7373 runs-on : ubuntu-latest
7474 steps :
75- - uses : actions/checkout@v4
75+ - uses : actions/checkout@v5
7676 - name : Setting up Miniforge
7777 uses : conda-incubator/setup-miniconda@v3
7878 with :
7979 miniforge-version : latest
80- python-version : ' 3.12'
80+ python-version : " 3.12"
8181 show-channel-urls : true
8282 conda-remove-defaults : true
8383 environment-file : environment.yml
@@ -106,7 +106,7 @@ jobs:
106106 python-version : " 3.12"
107107 coverage : true
108108 steps :
109- - uses : actions/checkout@v4
109+ - uses : actions/checkout@v5
110110 - name : Setting up Miniforge
111111 uses : conda-incubator/setup-miniconda@v3
112112 with :
@@ -117,12 +117,22 @@ jobs:
117117 id : get-date
118118 run : echo "today=$(/bin/date -u '+%Y%m%d')" >> $GITHUB_OUTPUT
119119 shell : bash
120+ - name : Compute environment.yml hash
121+ id : env-hash
122+ run : |
123+ if command -v sha256sum &>/dev/null 2>&1; then
124+ h=$(sha256sum environment.yml | cut -d' ' -f1)
125+ else
126+ h=$(shasum -a 256 environment.yml | cut -d' ' -f1)
127+ fi
128+ echo "env_hash=${h}" >> $GITHUB_OUTPUT
129+ shell : bash
120130 - name : Cache Conda env
121131 uses : actions/cache/restore@v4
122132 id : cache
123133 with :
124134 path : ${{ env.CONDA }}/envs
125- key : conda-${{ runner.os }}-${{ runner.arch }}-py${{ matrix.python-version }}-${{ steps.get-date.outputs.today }}-${{ hashFiles('environment.yml') }}-v${{ env.CACHE_VERSION }}
135+ key : conda-${{ runner.os }}-${{ runner.arch }}-py${{ matrix.python-version }}-${{ steps.get-date.outputs.today }}-${{ steps.env-hash.outputs.env_hash }}-v${{ env.CACHE_VERSION }}
126136 - name : Update environment
127137 if : steps.cache.outputs.cache-hit != 'true'
128138 run : |
@@ -181,9 +191,9 @@ jobs:
181191 # All other jobs: full test suite including slow tests
182192 python -m pytest -vv --runslow -n auto
183193 fi
184- - name : Running integration tests
194+ - name : Running example tests
185195 shell : bash -l {0}
186- run : python -m pytest -vv -s --integration tests/integration
196+ run : python -m pytest -vv -s --example -m example tests/example
187197 - name : Upload coverage reports to Codecov
188198 if : ${{ matrix.coverage == true }}
189199 uses : codecov/codecov-action@v5
@@ -204,7 +214,7 @@ jobs:
204214 name : External dependencies and documentation
205215 runs-on : macos-latest
206216 steps :
207- - uses : actions/checkout@v4
217+ - uses : actions/checkout@v5
208218 - name : Setting up Miniforge
209219 uses : conda-incubator/setup-miniconda@v3
210220 with :
@@ -215,12 +225,22 @@ jobs:
215225 id : get-date
216226 run : echo "today=$(/bin/date -u '+%Y%m%d')" >> $GITHUB_OUTPUT
217227 shell : bash
228+ - name : Compute environment.yml hash
229+ id : env-hash
230+ run : |
231+ if command -v sha256sum &>/dev/null 2>&1; then
232+ h=$(sha256sum environment.yml | cut -d' ' -f1)
233+ else
234+ h=$(shasum -a 256 environment.yml | cut -d' ' -f1)
235+ fi
236+ echo "env_hash=${h}" >> $GITHUB_OUTPUT
237+ shell : bash
218238 - name : Cache Conda env
219239 uses : actions/cache/restore@v4
220240 id : cache
221241 with :
222242 path : ${{ env.CONDA }}/envs
223- key : conda-${{ runner.os }}-${{ runner.arch }}-py3.13-${{ steps.get-date.outputs.today }}-${{ hashFiles('environment.yml') }}-v${{ env.CACHE_VERSION }}
243+ key : conda-${{ runner.os }}-${{ runner.arch }}-py3.13-${{ steps.get-date.outputs.today }}-${{ steps.env-hash.outputs.env_hash }}-v${{ env.CACHE_VERSION }}
224244 - name : Update environment
225245 if : steps.cache.outputs.cache-hit != 'true'
226246 run : |
@@ -257,17 +277,17 @@ jobs:
257277 pip install --no-deps -e .
258278 conda list
259279 - name : Cloning Smokescreen
260- uses : actions/checkout@v4
280+ uses : actions/checkout@v5
261281 with :
262- repository : ' lsstdesc /smokescreen'
263- path : ' smokescreen'
264- ref : ' v1.5.0 '
282+ repository : " marcpaterno /smokescreen"
283+ path : " smokescreen"
284+ ref : " adjust-to-firecrown-pr-586 "
265285 - name : Cloning Augur
266- uses : actions/checkout@v4
286+ uses : actions/checkout@v5
267287 with :
268- repository : ' lsstdesc/augur'
269- path : ' augur'
270- ref : ' 1.1.2 '
288+ repository : " lsstdesc/augur"
289+ path : " augur"
290+ ref : " b59cfaf3dec90aa606a4add453a5a77e0c8ea942 "
271291 - name : Build tutorials and documentation and check links
272292 shell : bash -l {0}
273293 run : |
0 commit comments