diff --git a/.github/tl_packages b/.github/tl_packages new file mode 100644 index 00000000..fa41657e --- /dev/null +++ b/.github/tl_packages @@ -0,0 +1,56 @@ +# The test framework itself +# +luatex +# +# Required to build formats +# +latex-bin +luahbtex +platex +uplatex +tex +xetex +# Requirements for the tests +amsfonts +etex-pkg +# +# Support for typesetting the docs +# +alphalph +atbegshi +atveryend +amsmath +bigintcalc +bitset +booktabs +ec +colortbl +csquotes +enumitem +etexcmds +fancyvrb +gettitlestring +graphics +hologo +hycolor +iftex +intcalc +kvdefinekeys +kvsetkeys +l3packages +letltxmacro +listings +ltxcmds +makeindex +needspace +oberdiek +pdfescape +pdftexcmds +psnfss +refcount +rerunfilecheck +hyperref +titlesec +tools +underscore +uniquecounter diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml new file mode 100644 index 00000000..ac852ac7 --- /dev/null +++ b/.github/workflows/deploy.yaml @@ -0,0 +1,54 @@ +name: Create release + +# We create releases for all new tags +on: + push: + tags: + - "*" + +jobs: + release: + runs-on: ubuntu-latest + name: Build release + environment: Release + steps: + # Boilerplate + - name: Checkout repository + uses: actions/checkout@v2 + # GitHub Actions don't regenerate the test if the key doesn't change, so + # we integrate a random UUID into the key to keep them different. + # DO NOT CHANGE THIS + - name: Generate unique ID + id: get-id + run: | + echo -n ::set-output name=id:: + cat /proc/sys/kernel/random/uuid + # Actually load the cache. Since we never reuse the key, we need restore-keys + # to indicate the prefix of our caches. This loads the newest cache with this + # prefix in the key. + # + # If we want to force regeneration of the cache, increase the number after + # *both* instances of "texlive-v" + - name: Load cache + uses: actions/cache@v2 + with: + path: ~/texlive + key: texlive-v0-${{ steps.get-id.outputs.id }} + restore-keys: texlive-v0- + # We need Ghostscript for XeTeX tests. + - run: sudo apt-get install ghostscript + - name: Install TeX Live + uses: zauguin/install-texlive@v1 + with: + # List the required TeX Live packages in a separate file to allow reuse in + # different workflows. + package_file: .github/tl_packages + - name: Run l3build + run: texlua l3build.lua ctan -H --show-log-on-error + # Now create the release (this only runs if the previous steps were successful) + - name: Create GitHub release + uses: ncipollo/release-action@880be3d0a71bc0fa98db60201d2cbdc27324f547 + id: release + with: + artifacts: "build/distrib/ctan/*.zip" + token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml new file mode 100644 index 00000000..1e63f49f --- /dev/null +++ b/.github/workflows/main.yaml @@ -0,0 +1,45 @@ +name: Automated testing + +on: + push: + pull_request: + branches: + - main + +jobs: + l3build: + runs-on: ubuntu-latest + steps: + # Boilerplate + - name: Checkout repository + uses: actions/checkout@v2 + # GitHub Actions don't regenerate the test if the key doesn't change, so + # we integrate a random UUID into the key to keep them different. + # DO NOT CHANGE THIS + - name: Generate unique ID + id: get-id + run: | + echo -n ::set-output name=id:: + cat /proc/sys/kernel/random/uuid + # Actually load the cache. Since we never reuse the key, we need restore-keys + # to indicate the prefix of our caches. This loads the newest cache with this + # prefix in the key. + # + # If we want to force regeneration of the cache, increase the number after + # *both* instances of "texlive-v" + - name: Load cache + uses: actions/cache@v2 + with: + path: ~/texlive + key: texlive-v0-${{ steps.get-id.outputs.id }} + restore-keys: texlive-v0- + # We need Ghostscript for XeTeX tests. + - run: sudo apt-get install ghostscript + - name: Install TeX Live + uses: zauguin/install-texlive@v1 + with: + # List the required TeX Live packages in a separate file to allow reuse in + # different workflows. + package_file: .github/tl_packages + - name: Run l3build + run: texlua l3build.lua ctan -H --show-log-on-error diff --git a/support/texlive.profile b/support/texlive.profile deleted file mode 100644 index 60905b49..00000000 --- a/support/texlive.profile +++ /dev/null @@ -1,10 +0,0 @@ -selected_scheme scheme-infraonly -TEXDIR /tmp/texlive -TEXMFCONFIG ~/.texlive/texmf-config -TEXMFHOME ~/texmf -TEXMFLOCAL /tmp/texlive/texmf-local -TEXMFSYSCONFIG /tmp/texlive/texmf-config -TEXMFSYSVAR /tmp/texlive/texmf-var -TEXMFVAR ~/.texlive/texmf-var -option_doc 0 -option_src 0 diff --git a/support/texlive.sh b/support/texlive.sh deleted file mode 100644 index 6c299483..00000000 --- a/support/texlive.sh +++ /dev/null @@ -1,79 +0,0 @@ -#!/usr/bin/env sh - -# This script is used for testing using Travis -# It is intended to work on their VM set up: Ubuntu 12.04 LTS -# A minimal current TL is installed adding only the packages that are -# required - -# See if there is a cached version of TL available -export PATH=/tmp/texlive/bin/x86_64-linux:$PATH -if ! command -v texlua > /dev/null; then - # Obtain TeX Live - wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz - tar -xzf install-tl-unx.tar.gz - cd install-tl-20* - - # Install a minimal system - ./install-tl --profile=../support/texlive.profile - - cd .. -fi - -# Update the TL install but add nothing new -tlmgr update --self - -# Needed for any use of texlua even if not testing LuaTeX -tlmgr install luatex - -# Required to build plain and LaTeX formats including (u)pLaTeX -tlmgr install latex-bin luahbtex platex uplatex tex xetex - -# Requirements for the tests -tlmgr install amsfonts etex-pkg - -# Support for typesetting the docs -tlmgr install \ - alphalph \ - atbegshi \ - atveryend \ - amsmath \ - bigintcalc \ - bitset \ - booktabs \ - ec \ - colortbl \ - csquotes \ - enumitem \ - etexcmds \ - fancyvrb \ - gettitlestring \ - graphics \ - hologo \ - hycolor \ - iftex \ - intcalc \ - kvdefinekeys \ - kvsetkeys \ - l3packages \ - letltxmacro \ - listings \ - ltxcmds \ - makeindex \ - needspace \ - oberdiek \ - pdfescape \ - pdftexcmds \ - psnfss \ - refcount \ - rerunfilecheck \ - hyperref \ - titlesec \ - tools \ - underscore \ - uniquecounter - -# Keep no backups (not required, simply makes cache bigger) -tlmgr option -- autobackup 0 - -# Update the TL install but add nothing new -tlmgr update --all --no-auto-install