2121 required : false
2222 default : false
2323 type : boolean
24- sandpaper-version :
25- description : ' The version of sandpaper to use. You can use the remotes syntax to specify a version to use. Defaults to latest on the r-universe.'
26- default : ' latest'
27- pegboard-version :
28- description : ' The version of pegboard to use. You can use the remotes syntax to specify a version to use. Defaults to latest on the r-universe.'
29- default : ' latest'
30- varnish-version :
31- description : ' The version of varnish to use. You can use the remotes syntax to specify a version to use. Defaults to latest on the r-universe.'
32- default : ' latest'
24+ skip-manage-deps :
25+ description : ' Skip build-time dependency management'
26+ required : false
27+ default : true
28+ type : boolean
3329 workflow_run :
3430 workflows : ["03 Maintain: Apply Package Cache"]
3531 types :
@@ -42,39 +38,43 @@ jobs:
4238 outputs :
4339 do-build : ${{ steps.build-check.outputs.do-build }}
4440 renv-needed : ${{ steps.build-check.outputs.renv-needed }}
45- renv-cache-hashsum : ${{ steps.build-check.outputs.renv-cache-hashsum || '' }}
46- varnish-version : ${{ steps.build-check.outputs.varnish-version-override }}
47- sandpaper-version : ${{ steps.build-check.outputs.sandpaper-version-override }}
48- pegboard-version : ${{ steps.build-check.outputs.pegboard-version-override }}
41+ renv-cache-hashsum : ${{ steps.build-check.outputs.renv-cache-hashsum }}
42+ workbench-container-file-exists : ${{ steps.wb-vers.outputs.workbench-container-file-exists }}
43+ wb-vers : ${{ steps.wb-vers.outputs.container-version }}
44+ last-wb-vers : ${{ steps.wb-vers.outputs.last-container-version }}
45+ workbench-update : ${{ steps.wb-vers.outputs.workbench-update }}
4946 env :
50- GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
51-
47+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
5248 steps :
5349 - name : " Should we run build and deploy?"
5450 id : build-check
55- uses : carpentries/actions/build-preflight@main
51+ uses : carpentries/actions/build-preflight@frog-s3-test-1
52+
53+ - name : Checkout Lesson
54+ if : ${{ steps.build-check.outputs.do-build == 'true' }}
55+ uses : actions/checkout@v4
56+
57+ - name : Get container version info
58+ id : wb-vers
59+ if : ${{ steps.build-check.outputs.do-build == 'true' }}
60+ uses : carpentries/actions/container-version@frog-s3-test-1
5661 with :
57- sandpaper-version : ${{ vars.SANDPAPER_VER || github.event.inputs.sandpaper-version || 'latest' }}
58- pegboard-version : ${{ vars.PEGBOARD_VER || github.event.inputs.pegboard-version || 'latest' }}
59- varnish-version : ${{ vars.VARNISH_VER || github.event.inputs.varnish-version || 'latest' }}
60- CACHE_VERSION : ${{ secrets.CACHE_VERSION || vars.CACHE_VERSION || github.event.inputs.CACHE_VERSION || '' }}
61- WORKBENCH_TAG : ${{ vars.WORKBENCH_TAG || 'latest' }}
62+ WORKBENCH_TAG : ${{ vars.WORKBENCH_TAG }}
63+ renv-needed : ${{ steps.build-check.outputs.renv-needed }}
6264
6365 full-build :
6466 name : " Build Full Site"
6567 runs-on : ubuntu-latest
66- needs : [ preflight]
67- if : ${{ needs.preflight.outputs.do-build == 'true' }}
68+ needs : preflight
69+ if : always() && ${{ needs.preflight.outputs.do-build == 'true' && needs.preflight.outputs.workbench-update ! = 'true' }}
6870 env :
69- RENV_EXISTS : ${{ needs.preflight.outputs.renv-needed }}
70- RENV_HASH : ${{ needs.preflight.outputs.renv-cache-hashsum }}
71- VARNISH_VER : ${{ needs.preflight.outputs.varnish-version }}
72- SANDPAPER_VER : ${{ needs.preflight.outputs.sandpaper-version }}
73- PEGBOARD_VER : ${{ needs.preflight.outputs.pegboard-version }}
71+ RENV_EXISTS : ${{ needs.preflight.outputs.renv-needed }}
72+ RENV_HASH : ${{ needs.preflight.outputs.renv-cache-hashsum }}
7473 permissions :
7574 checks : write
7675 contents : write
7776 pages : write
77+ id-token : write # OIDC permission required
7878 container :
7979 image : carpentries/workbench-docker:${{ vars.WORKBENCH_TAG || 'latest' }}
8080 env :
8787 - ${{ github.workspace }}:/home/rstudio/lesson
8888 options : --cpus 1
8989 steps :
90- - name : " Checkout Lesson"
91- uses : actions/checkout@v4
90+ - uses : actions/checkout@v4
9291
9392 - name : " Debugging Info"
9493 run : |
@@ -105,15 +104,43 @@ jobs:
105104
106105 - name : " Setup Lesson Dependencies"
107106 id : build-container-deps
108- uses : carpentries/actions/build-container-deps@main
107+ uses : carpentries/actions/build-container-deps@frog-s3-test-1
109108 with :
109+ CACHE_VERSION : ${{ vars.CACHE_VERSION || github.event.inputs.CACHE_VERSION || '' }}
110110 WORKBENCH_TAG : ${{ vars.WORKBENCH_TAG || 'latest' }}
111111 LESSON_PATH : ${{ vars.LESSON_PATH || '/home/rstudio/lesson' }}
112+ role-to-assume : ${{ secrets.AWS_GH_OIDC_ARN }}
113+ aws-region : ${{ secrets.AWS_GH_OIDC_REGION }}
112114
113115 - name : Run Container and Build Site
114- run : |
115- library(sandpaper)
116- reset <- "${{ github.event.inputs.reset }}" == "true"
117- sandpaper::package_cache_trigger(TRUE)
118- sandpaper:::ci_deploy(reset = reset)
119- shell : Rscript {0}
116+ id : build-and-deploy
117+ uses : carpentries/actions/build-and-deploy@frog-s3-test-1
118+ with :
119+ reset : ${{ github.event.inputs.reset }}
120+ skip-manage-deps : ${{ github.event.inputs.skip-manage-deps }}
121+
122+ update-container-version :
123+ name : " Update container version used"
124+ runs-on : ubuntu-latest
125+ needs : [preflight, full-build]
126+ permissions :
127+ contents : write
128+ pull-requests : write
129+ id-token : write # OIDC permission required
130+ if : |
131+ needs.preflight.outputs.do-build == 'true' &&
132+ (
133+ needs.preflight.outputs.workbench-container-file-exists == 'false' ||
134+ (
135+ needs.full-build.build-and-deploy.outcome == 'success' &&
136+ needs.preflight.outputs.wb-vers != needs.preflight.outputs.last-wb-vers
137+ )
138+ )
139+ steps :
140+ - name : Record container version used
141+ uses : carpentries/actions/record-container-version@frog-s3-test-1
142+ with :
143+ CONTAINER_VER : ${{ needs.preflight.outputs.wb-vers }}
144+ token : ${{ secrets.GITHUB_TOKEN }}
145+ role-to-assume : ${{ secrets.AWS_GH_OIDC_ARN }}
146+ aws-region : ${{ secrets.AWS_GH_OIDC_REGION }}
0 commit comments