Skip to content
name: Build Notebooks
permissions:
packages: write
on:
push:
pull_request:
workflow_dispatch:
jobs:
gen:
name: Generate job matrix
runs-on: ubuntu-latest
outputs:
level0: ${{ steps.gen.outputs.level0 }}
level1: ${{ steps.gen.outputs.level1 }}
level2: ${{ steps.gen.outputs.level2 }}
level3: ${{ steps.gen.outputs.level3 }}
level4: ${{ steps.gen.outputs.level4 }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- run: python3.12 gen_gha_matrix_jobs.py
id: gen
# base images
level0:
needs: [ "gen" ]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix: "${{ fromJson(needs.gen.outputs.level0) }}"
steps:
- uses: actions/checkout@v4
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- run: "make ${{ matrix.target }}"
env:
IMAGE_REGISTRY: "ghcr.io/${{ github.repository }}/workbench-images"
# images that only depend on base images
level1:
needs: [ "gen", "level0" ]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix: "${{ fromJson(needs.gen.outputs.level1) }}"
steps:
- uses: actions/checkout@v4
- run: "make ${{ matrix.target }}"
level2:
needs: [ "gen", "level1" ]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix: "${{ fromJson(needs.gen.outputs.level2) }}"
steps:
- uses: actions/checkout@v4
- run: "make ${{ matrix.target }}"
level3:
needs: [ "gen", "level2" ]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix: "${{ fromJson(needs.gen.outputs.level3) }}"
steps:
- uses: actions/checkout@v4
- run: "make ${{ matrix.target }}"
level4:
needs: [ "gen", "level3" ]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix: "${{ fromJson(needs.gen.outputs.level4) }}"
steps:
- uses: actions/checkout@v4
- run: "make ${{ matrix.target }}"