update CHANGES #39
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
name: Automated testing | |
# Currently we run in two situations: | |
on: | |
# Whenever someone pushes to a branch in our repo | |
push: | |
branches: | |
- "*" | |
# Whenever a pull request is opened, reopened or gets new commits. | |
pull_request: | |
# This implies that for every push to a local branch in our repo for which a | |
# pull request is open this runs twice. But it's important to ensure that pull | |
# requests get tested even if their branch comes from a fork. | |
# Also the PR check runs on the merged commit, not on the unmerged branch. | |
jobs: | |
# The l3build job contains the actual work. We misuse the matrix mechanism to | |
# create three jobs which only differ in minimal elements. | |
# For tags we do not run this since we run the release job instead. | |
l3build: | |
runs-on: ubuntu-20.04 | |
strategy: | |
matrix: | |
# include indicates that we want to set explicitly these combinations | |
# and don't want full matrix testing. | |
# "name" is just to make the output more readable. | |
# "l3build_cmd" is the actual command to run | |
# "artifact_name" is which artifact might get generated by this step. | |
# IMPORTANT: artifact_name == "Documentation" is used as a trigger to | |
# generate the artifact from PDF files and not the build directory and | |
# to generate the artifact when the run is successful, not when it fails. | |
include: | |
- name: "Tests: LuaTeX" | |
l3build_cmd: l3build check -e luatex -q --show-log-on-error | |
artifact_name: testfiles | |
- name: "Tests: XeTeX" | |
l3build_cmd: l3build check -e xetex -q --show-log-on-error | |
artifact_name: testfiles | |
# Uses proprietary fonts | |
# - name: "Documentation" | |
# l3build_cmd: l3build doc -q -H --show-log-on-error | |
# artifact_name: Documentation | |
name: ${{ matrix.name }} | |
steps: | |
# Boilerplate | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install TeX Live | |
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 | |
- name: Checkout fonts for testing | |
uses: actions/checkout@v3 | |
with: | |
repository: zauguin/fontspec-test-fonts | |
path: fontspec-test-fonts | |
- name: Install fonts for testing | |
run: ./fontspec-test-fonts/install.sh | |
- name: Run l3build | |
run: ${{ matrix.l3build_cmd }} | |
# Now we create the artifacts: There are two cases where this happens. | |
# 1. If we failed running tests | |
- name: Archive failed test output | |
if: ${{ always() }} | |
uses: zauguin/l3build-failure-artifacts@v1 | |
with: | |
name: ${{ matrix.artifact_name }} | |
# Decide how long to keep the test output artifact: | |
retention-days: 3 | |
# 2. If we succeed building documentation | |
- name: Archive documentation | |
if: ${{ matrix.artifact_name == 'Documentation' && success() }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ matrix.artifact_name }} | |
path: "**/*.pdf" | |
# Decide how long to keep the test output artifact: | |
retention-days: 21 |