Skip to content
# 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:ts=2: