split modules into 3 groups: clm ; modules needing clm ; modules not … #48
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 is a basic workflow to help you get started with Actions | |
# https://github.com/latex3/hyperref/blob/adc36adbc3650db73329469b43afb0ee86e3c807/.github/workflows/main.yaml | |
# https://github.com/josephwright/siunitx/blob/main/.github/workflows/main.yaml | |
name: Automatic Checks for nfssext | |
# Controls when the workflow will run | |
on: | |
# Triggers the workflow on push or pull request events but only for the "main" branch | |
push: | |
branches: | |
- "*" | |
pull_request: | |
branches: | |
- "*" | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
# A workflow run is made up of one or more jobs that can run sequentially or in parallel | |
jobs: | |
# addaswyd o https://github.com/latex3/latex2e/blob/develop/.github/workflows/main.yaml | |
# update TL tree if needed | |
texlive-cache: | |
runs-on: ubuntu-latest | |
name: Update TeX Live cache | |
outputs: | |
cache_key: ${{ steps.texlive.outputs.cache_key }} | |
# Steps represent a sequence of tasks that will be executed as part of the job | |
steps: | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Install TeX Live | |
id: texlive | |
uses: zauguin/install-texlive@v3 | |
with: | |
# List the required TeX Live packages in a separate file to allow reuse in | |
# different workflows. | |
package_file: .github/tl_packages | |
clm: | |
if: ${{ always() }} | |
# The type of runner that the job will run on | |
runs-on: ubuntu-latest | |
name: "Test build: cfr-lm" | |
needs: texlive-cache | |
# nfssext-cfr uses cfr-lm (though it falls back if built first) | |
# cfr-lm uses nfssext-cfr but there's nothing to build | |
# outputs: | |
# clm_cache_key: $(( steps.clm-cache.outputs.cache_key }} | |
steps: | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
# https://github.com/josephwright/siunitx/blob/549cad913591b92a3a199b7477a325866303bf29/.github/workflows/main.yaml | |
# We need Ghostscript for XeTeX tests. | |
- run: sudo apt-get update #&& sudo apt-get install ghostscript | |
# Steps represent a sequence of tasks that will be executed as part of the job | |
- name: Restore TeX Live from cache | |
uses: actions/cache/restore@v4 | |
with: | |
path: ~/texlive | |
key: ${{ needs.texlive-cache.outputs.cache_key }} | |
fail-on-cache-miss: true | |
# oes angen hwn? | |
# oes! | |
- name: Set PATH | |
run: echo $HOME/texlive/bin/x86_64-linux >> $GITHUB_PATH | |
- name: Run l3build fnttarg | |
working-directory: cfr-lm | |
run: l3build fnttarg | |
- name: Run l3build ctan | |
working-directory: cfr-lm | |
run: l3build ctan | |
- name: Run l3build install | |
working-directory: cfr-lm | |
run: l3build install | |
- name: Update map | |
run: updmap --user --enable Map=clm.map | |
- name: Archive failed test output for clm | |
# run even if previous step failed | |
if: ${{ always() }} | |
uses: zauguin/l3build-failure-artifacts@v1 | |
with: | |
name: testfiles-clm | |
# Decide how long to keep the test output artefact: | |
retention-days: 7 | |
- name: Cache build results | |
id: clm-cache | |
uses: actions/cache/save@v4 | |
with: | |
path: | | |
~/.texlive | |
~/texmf | |
key: clm-${{ github.sha }} | |
# addaswyd o https://github.com/latex3/latex2e/blob/develop/.github/workflows/main.yaml | |
# these do not depend on clm | |
nfssext: | |
if: ${{ always() }} | |
runs-on: ubuntu-latest | |
needs: texlive-cache | |
# don't abandon other builds if one module fails | |
continue-on-error: true | |
strategy: | |
matrix: | |
# include indicates that we want to set explicitly these combinations | |
# and don't want full matrix testing. | |
include: | |
- module: baskervaldadf | |
working_directory: arkandis/baskervaldadf | |
pre_target: fnttarg | |
- module: berenisadf | |
working_directory: arkandis/berenisadf | |
# berenis needs make, ff | |
extra_packages: make fontforge | |
pre_target: fnttarg | |
- module: electrumadf | |
working_directory: arkandis/electrumadf | |
pre_target: fnttarg | |
- module: librisadf | |
working_directory: arkandis/librisadf | |
pre_target: fnttarg | |
- module: romandeadf | |
working_directory: arkandis/romandeadf | |
pre_target: fnttarg | |
- module: venturisadf | |
working_directory: arkandis/venturisadf | |
pre_target: fnttarg | |
name: "Test build: ${{ matrix.module }}" | |
steps: | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
# https://github.com/josephwright/siunitx/blob/549cad913591b92a3a199b7477a325866303bf29/.github/workflows/main.yaml | |
# We need Ghostscript for XeTeX tests. | |
- name: Update system | |
run: sudo apt-get update | |
- name: Install additional packages if needed | |
if: ${{ matrix.extra_packages }} | |
run: sudo apt-get install ${{ matrix.extra_packages }} | |
- name: Restore TeX Live from cache | |
uses: actions/cache/restore@v4 | |
with: | |
path: ~/texlive | |
key: ${{ needs.texlive-cache.outputs.cache_key }} | |
fail-on-cache-miss: true | |
# oes angen hwn? | |
# oes! | |
- name: Set PATH | |
run: echo $HOME/texlive/bin/x86_64-linux >> $GITHUB_PATH | |
- name: Run l3build fnttarg | |
if: ${{ matrix.pre_target }} | |
working-directory: ${{ matrix.working_directory }} | |
run: "l3build fnttarg" | |
- name: Run l3build | |
working-directory: ${{ matrix.working_directory }} | |
run: "l3build ctan" | |
- name: Archive failed test output | |
# run even if previous step failed | |
if: ${{ always() }} | |
uses: zauguin/l3build-failure-artifacts@v1 | |
with: | |
name: testfiles-${{ matrix.module }} | |
# Decide how long to keep the test output artefact: | |
retention-days: 7 | |
# addaswyd o https://github.com/latex3/latex2e/blob/develop/.github/workflows/main.yaml | |
# need cfr-lm | |
# we don't really need the variable doing it in a separate matrix ... | |
# but leave for now as may be useful | |
nfssext-needy: | |
if: ${{ always() }} | |
runs-on: ubuntu-latest | |
needs: [ texlive-cache, clm ] | |
# don't abandon other builds if one module fails | |
continue-on-error: true | |
strategy: | |
matrix: | |
# include indicates that we want to set explicitly these combinations | |
# and don't want full matrix testing. | |
include: | |
- module: adforn | |
working_directory: arkandis/adforn | |
pre_target: fnttarg | |
extra_needs: clm | |
- module: adfsymbols | |
working_directory: arkandis/adfsymbols | |
pre_target: fnttarg | |
extra_needs: clm | |
- module: fontscripts | |
working_directory: fontscripts | |
extra_needs: clm | |
- module: nfssext-cfr | |
working_directory: nfssext-cfr | |
extra_needs: clm | |
name: "Test build: ${{ matrix.module }}" | |
steps: | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
# https://github.com/josephwright/siunitx/blob/549cad913591b92a3a199b7477a325866303bf29/.github/workflows/main.yaml | |
# We need Ghostscript for XeTeX tests. | |
- name: Update system | |
run: sudo apt-get update | |
- name: Install additional packages if needed | |
if: ${{ matrix.extra_packages }} | |
run: sudo apt-get install ${{ matrix.extra_packages }} | |
- name: Restore TeX Live from cache | |
uses: actions/cache/restore@v4 | |
with: | |
path: ~/texlive | |
key: ${{ needs.texlive-cache.outputs.cache_key }} | |
fail-on-cache-miss: true | |
# oes angen hwn? | |
# oes! | |
- name: Set PATH | |
run: echo $HOME/texlive/bin/x86_64-linux >> $GITHUB_PATH | |
- name: Restore cfr-lm from cache | |
if: ${{ matrix.extra_needs }} | |
uses: actions/cache/restore@v4 | |
with: | |
path: | | |
~/.texlive | |
~/texmf | |
key: clm-${{ github.sha }} | |
fail-on-cache-miss: true | |
- name: Run l3build fnttarg | |
if: ${{ matrix.pre_target }} | |
working-directory: ${{ matrix.working_directory }} | |
run: "l3build fnttarg" | |
- name: Run l3build | |
working-directory: ${{ matrix.working_directory }} | |
run: "l3build ctan" | |
- name: Archive failed test output | |
# run even if previous step failed | |
if: ${{ always() }} | |
uses: zauguin/l3build-failure-artifacts@v1 | |
with: | |
name: testfiles-${{ matrix.module }} | |
# Decide how long to keep the test output artefact: | |
retention-days: 7 | |
# vim: sw=2:et:et=2: |