Skip to content

ci: really try to hit the cache for the foundation #262

ci: really try to hit the cache for the foundation

ci: really try to hit the cache for the foundation #262

Workflow file for this run

---
name: Publish Images
on:
workflow_dispatch:
push:
branches: [main, test/*]
paths:
# ci/cd
- .github/workflows/publish.yml
- .github/workflows/build-test-publish.yml
# build
- pixi.lock
- Dockerfile
- requirements.r
- Rprofile.site
# test
- tests/**
schedule:
# Weekly, at 03:00 on Monday UTC time (see https://crontab.guru)
- cron: "0 3 * * 1"
# https://docs.github.com/en/actions/using-jobs/using-concurrency
concurrency:
# only cancel in-progress jobs or runs for the current workflow - matches against branch & tags
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
foundation:
uses: ./.github/workflows/build-test-publish.yml
secrets: inherit
with:
image: foundation
target: base
title: Foundational Image for CourseKata Notebook Images
description: System dependencies for CourseKata notebook images.
build-args: |
PIXI_ENV=default
cache-from: |
type=registry,ref=ghcr.io/${{ github.repository_owner }}/foundation
type=registry,ref=ghcr.io/${{ github.repository_owner }}/foundation:amd64
type=registry,ref=ghcr.io/${{ github.repository_owner }}/foundation:arm64
type=registry,ref=ghcr.io/${{ github.repository_owner }}/foundation:aarch64
type=registry,ref=ghcr.io/${{ github.repository_owner }}/base-r-notebook
type=registry,ref=ghcr.io/${{ github.repository_owner }}/base-r-notebook:amd64
type=registry,ref=ghcr.io/${{ github.repository_owner }}/base-r-notebook:arm64
type=registry,ref=ghcr.io/${{ github.repository_owner }}/base-r-notebook:aarch64
type=registry,ref=ghcr.io/${{ github.repository_owner }}/essentials-notebook
type=registry,ref=ghcr.io/${{ github.repository_owner }}/essentials-notebook:amd64
type=registry,ref=ghcr.io/${{ github.repository_owner }}/essentials-notebook:arm64
type=registry,ref=ghcr.io/${{ github.repository_owner }}/essentials-notebook:aarch64
type=registry,ref=ghcr.io/${{ github.repository_owner }}/r-notebook
type=registry,ref=ghcr.io/${{ github.repository_owner }}/r-notebook:amd64
type=registry,ref=ghcr.io/${{ github.repository_owner }}/r-notebook:arm64
type=registry,ref=ghcr.io/${{ github.repository_owner }}/r-notebook:aarch64
type=registry,ref=ghcr.io/${{ github.repository_owner }}/datascience-notebook
type=registry,ref=ghcr.io/${{ github.repository_owner }}/datascience-notebook:amd64
type=registry,ref=ghcr.io/${{ github.repository_owner }}/datascience-notebook:arm64
type=registry,ref=ghcr.io/${{ github.repository_owner }}/datascience-notebook:aarch64
images:
needs: [foundation]
strategy:
matrix:
include:
- image: base-r-notebook
pixi_env: base-r
title: Base R Notebook
description: Jupyter Lab, Python, and R, and that's it.
free_disk_space: false
- image: essentials-notebook
pixi_env: essentials
title: Essentials Notebook
description: CourseKata essentials - everything used in the books.
free_disk_space: true
- image: r-notebook
pixi_env: r
title: R Notebook
description: CourseKata essentials and other R packages for teaching and learning data science.
free_disk_space: true
- image: datascience-notebook
pixi_env: datascience
title: Data Science Notebook
description: R and Python packages for teaching and learning data science.
free_disk_space: true
uses: ./.github/workflows/build-test-publish.yml
secrets: inherit
with:
image: ${{ matrix.image }}
title: ${{ matrix.title }}
description: ${{ matrix.description }}
free-disk-space: ${{ matrix.free_disk_space }}
cache-from: ${{ needs.foundation.outputs.cache-from }}
build-args: |
PIXI_ENV=${{ matrix.pixi_env }}