{"id":13995832,"url":"https://github.com/teatimeguest/setup-texlive-action","last_synced_at":"2025-04-09T22:19:30.571Z","repository":{"id":37103872,"uuid":"427279008","full_name":"teatimeguest/setup-texlive-action","owner":"teatimeguest","description":"A GitHub Action to set up TeX Live","archived":false,"fork":false,"pushed_at":"2025-04-04T05:57:13.000Z","size":10163,"stargazers_count":49,"open_issues_count":8,"forks_count":3,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-09T22:19:25.616Z","etag":null,"topics":["actions","github-actions","latex","luatex","pdftex","tex","texlive","xetex"],"latest_commit_sha":null,"homepage":"https://github.com/marketplace/actions/setup-texlive-action","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/teatimeguest.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-11-12T08:03:55.000Z","updated_at":"2025-04-04T05:57:16.000Z","dependencies_parsed_at":"2023-10-20T09:08:27.319Z","dependency_job_id":"d070802b-5c26-4678-bd3f-0b047d16ee66","html_url":"https://github.com/teatimeguest/setup-texlive-action","commit_stats":{"total_commits":449,"total_committers":3,"mean_commits":"149.66666666666666","dds":"0.49443207126948774","last_synced_commit":"352317d21928f5a5191cfb9bb19410eb5eb28fdb"},"previous_names":[],"tags_count":58,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teatimeguest%2Fsetup-texlive-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teatimeguest%2Fsetup-texlive-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teatimeguest%2Fsetup-texlive-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teatimeguest%2Fsetup-texlive-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/teatimeguest","download_url":"https://codeload.github.com/teatimeguest/setup-texlive-action/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248119515,"owners_count":21050780,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["actions","github-actions","latex","luatex","pdftex","tex","texlive","xetex"],"created_at":"2024-08-09T14:03:36.290Z","updated_at":"2025-04-09T22:19:30.521Z","avatar_url":"https://github.com/teatimeguest.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# setup-texlive-action\n\n\u003e A GitHub Action to set up TeX Live\n\n[![Marketplace][marketplace-badge]][marketplace]\n[![CI][ci-badge]][ci]\n[![Codecov][codecov-badge]][codecov]\n\nThis action provides the following functionality:\n\n- Installing and setting up a specific version of [TeX Live];\n- Caching and restoring [`TEXDIR`] by default\n  to improve workflow execution time;\n- Optionally configuring an additional package repository\n  and installing TeX packages.\n\nLinux, Windows, and macOS are supported.\n\n[TeX Live]: https://tug.org/texlive/\n[`TEXDIR`]: https://tug.org/texlive/doc/texlive-en/texlive-en.html#x1-250003.2.3 \"3.2.3 Directories\"\n[ci-badge]: https://github.com/teatimeguest/setup-texlive-action/actions/workflows/ci.yml/badge.svg\n[ci]: https://github.com/teatimeguest/setup-texlive-action/actions/workflows/ci.yml\n[codecov-badge]: https://codecov.io/gh/teatimeguest/setup-texlive-action/branch/main/graph/badge.svg?token=97878QAWCF\n[codecov]: https://codecov.io/gh/teatimeguest/setup-texlive-action\n[marketplace-badge]: https://img.shields.io/github/v/release/teatimeguest/setup-texlive-action?logo=githubactions\u0026label=Marketplace\u0026labelColor=2e353b\u0026color=2088ff\n[marketplace]: https://github.com/marketplace/actions/setup-texlive-action\n\n## Breaking Changes in V3\n\n\u003e In most cases, you can upgrade from v2 to v3 without changing your workflow.\n\n\u003cdetails\u003e\n  \u003csummary\u003eUse Node.js v20 as runtime.\u003c/summary\u003e\n  \u003cp /\u003e\n  \u003ctable\u003e\n    \u003ctr\u003e\u003c/tr\u003e\u003ctr\u003e\u003cth rowspan=\"2\"\u003e\u003c/th\u003e\u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\n        \u003cp\u003e\n\nWith Node.js v16 having reached its [end-of-life][nodejs16-eol] and\nGitHub Actions beginning the [transition to Node.js v20],\nthe action has upgraded its default runtime to Node.js v20.\n\nIf you are using a self-hosted runner, please update it to\n[v2.308.0] or later to ensure `node20` runtime functionality.\n\n[nodejs16-eol]: https://nodejs.org/en/blog/announcements/nodejs16-eol\n[transition to Node.js v20]: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/\n[v2.308.0]: https://github.com/actions/runner/releases/tag/v2.308.0\n\n\u003c/p\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/table\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n  \u003csummary\u003e\n    Change the condition under which\n    \u003ccode\u003ecache-hit\u003c/code\u003e is set to \u003ccode\u003etrue\u003c/code\u003e.\n  \u003c/summary\u003e\n  \u003cp /\u003e\n  \u003ctable\u003e\n    \u003ctr\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd rowspan=\"2\"\u003e\u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\n        \u003cp\u003e\n\nTo be more consistent with official actions such as [actions/cache],\nthe `cache-hit` output is now set to `true` only if\na cache is found that exactly matches the specified version and package set.\nTo simply check if a cache was found, use `cache-restored` instead:\n\n```yaml\n- uses: teatimeguest/setup-texlive-action@v3\n  id: setup\n\n- if: fromJSON(steps.setup.outputs.cache-restored)\n  run: echo 'A cache has been found'\n```\n\n[actions/cache]: https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#cache-hits-and-misses\n\n\u003c/p\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/table\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n  \u003csummary\u003e\n    Change default installation prefix,\n    environment variable name, and cache key prefix.\n  \u003c/summary\u003e\n  \u003cp /\u003e\n  \u003ctable\u003e\n    \u003ctr\u003e\u003c/tr\u003e\u003ctr\u003e\u003cth rowspan=\"2\"\u003e\u003c/th\u003e\u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\n        \u003cp\u003e\n\nActions published on [GitHub Marketplace](https://github.com/marketplace?type=actions)\nhave unique names defined in the metadata file `action.yml`.\nTo minimize conflicts with other actions,\nthe action name (`setup-texlive-action`) is now used for the following things:\n\n- Directory name of the default installation prefix:\n\n  ```diff\n  - $RUNNER_TEMP/setup-texlive\n  + $RUNNER_TEMP/setup-texlive-action\n  ```\n\n- Environment variable name:\n\n  ```diff\n  - SETUP_TEXLIVE_FORCE_UPDATE_CACHE\n  + SETUP_TEXLIVE_ACTION_FORCE_UPDATE_CACHE\n  ```\n\n- Cache keys.\n\n\u003c/p\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/table\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n  \u003csummary\u003eChange default texmf user directories.\u003c/summary\u003e\n  \u003cp /\u003e\n  \u003ctable\u003e\n    \u003ctr\u003e\u003c/tr\u003e\u003ctr\u003e\u003cth rowspan=\"2\"\u003e\u003c/th\u003e\u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\n        \u003cp\u003e\n\nAs with `install-tl`'s [portable installation], user directories are\nnow set by default to be the same as the corresponding system directories.\nTo emulate the previous behavior,\nspecify the user directories explicitly using environment variables:\n\n```yaml\n- uses: teatimeguest/setup-texlive-action@v3\n  env:\n    TEXLIVE_INSTALL_TEXMFHOME: ~/texmf\n    TEXLIVE_INSTALL_TEXMFCONFIG: ~/.local/texlive/\u003cversion\u003e/texmf-config\n    TEXLIVE_INSTALL_TEXMFVAR: ~/.local/texlive/\u003cversion\u003e/texmf-var\n```\n\n[portable installation]: https://tug.org/texlive/doc/texlive-en/texlive-en.html#tlportable \"4.2 Portable (USB) installation\"\n\n\u003c/p\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/table\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n  \u003csummary\u003e\n    Change syntax for the \u003ccode\u003epackage-file\u003c/code\u003e input.\n  \u003c/summary\u003e\n  \u003cp /\u003e\n  \u003ctable\u003e\n    \u003ctr\u003e\u003c/tr\u003e\u003ctr\u003e\u003cth rowspan=\"2\"\u003e\u003c/th\u003e\u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\n        \u003cp\u003e\n\nThe `package-file` input now accepts\n[glob patterns][glob] to specify multiple files:\n\n```yaml\n- uses: actions/checkout@v4\n- uses: teatimeguest/setup-texlive-action@v3\n  with:\n    package-file: |\n      .github/tl_packages\n      **/DEPENDS.txt\n```\n\nThis change might break existing workflow behavior\nsince special characters such as `*` and `?` will need to be escaped.\n\n[glob]: https://github.com/actions/toolkit/tree/main/packages/glob#patterns\n\n\u003c/p\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/table\u003e\n\u003c/details\u003e\n\n## Table of Contents\n\n- [Usage](#usage)\n  - [Basic Usage](#basic-usage)\n  - [Caching](#caching)\n  - [Historic Versions](#historic-versions)\n- [Inputs](#inputs)\n- [Outputs](#outputs)\n- [Environment Variables](#environment-variables)\n- [Permissions](#permissions)\n- [Troubleshooting](#troubleshooting)\n- [Changelog](#changelog)\n- [License](#license)\n\n## Usage\n\n### Basic Usage\n\n```yaml\n- name: Setup TeX Live\n  uses: teatimeguest/setup-texlive-action@v3\n  with:\n    packages: scheme-basic\n```\n\nTo make it suitable for CI use, by default, the action will only set up\n[`tlmgr`](https://www.tug.org/texlive/tlmgr.html) (TeX Live package manager) and\n**will not install any TeX packages, even basic commands such as `pdflatex`.**\nIf you want to install some TeX packages, you can use the `packages` input:\n\n```yaml\n- uses: teatimeguest/setup-texlive-action@v3\n  with:\n    packages: |\n      scheme-basic\n      hyperref\n      microtype\n\n  # `pdflatex` is now available\n  # along with hyperlink and microtypography support.\n```\n\n\u003e [!NOTE]\\\n\u003e Since `tlmgr` does not manage package dependencies,\n\u003e you will need to explicitly specify all the packages you depend on.\n\u003e If you are not sure exactly which packages are required,\n\u003e it is recommended to install at least `scheme-basic`,\n\u003e which contains the most basic packages such as `latex` and `amsmath`.\n\u003e\n\u003e See also \"[Troubleshooting](#troubleshooting).\"\n\nYou can also specify packages by file using the `package-file` input:\n\n```yaml\n- uses: actions/checkout@v4\n- uses: teatimeguest/setup-texlive-action@v3\n  with:\n    package-file: |\n      .github/tl_packages\n      **/DEPENDS.txt\n```\n\n### Caching\n\nBy default, the action will save `TEXDIR` to cache using [`@actions/cache`].\nThis is done in the [post-process] of a completed workflow job,\nso that, for example, LuaTeX font cache files generated in your job are\nalso saved and restored as part of the cache entry.\n\nIf you have problems due to a corrupt cache entry,\nyou can delete it from the [web interface], [GitHub CLI], or [REST API].\nFor an example of programmatically deleting cache entries created by this action\nusing [actions/github-script], see [this script][e2e/index.cjs].\n\nIf you want to disable caching, set the `cache` input to `false`:\n\n```yaml\n- uses: teatimeguest/setup-texlive-action@v3\n  with:\n    cache: false\n```\n\n[GitHub CLI]: https://github.com/actions/gh-actions-cache\n[REST API]: https://docs.github.com/en/rest/actions/cache?apiVersion=2022-11-28#delete-github-actions-caches-for-a-repository-using-a-cache-key\n[`@actions/cache`]: https://github.com/actions/toolkit/tree/main/packages/cache\n[actions/github-script]: https://github.com/actions/github-script\n[e2e/index.cjs]: https://github.com/teatimeguest/setup-texlive-action/blob/v3.3.0/packages/e2e/index.cjs\n[post-process]: https://docs.github.com/en/actions/sharing-automations/creating-actions/metadata-syntax-for-github-actions#runspost\n[web interface]: https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#deleting-cache-entries\n\n### Historic Versions\n\nYou can use an older version of TeX Live by setting the `version` input:\n\n```yaml\n- uses: teatimeguest/setup-texlive-action@v3\n  with:\n    version: 2008\n```\n\nThe action will install an older version\nusing [historic archive](https://tug.org/historic/)\nwith small patches to fix minor problems.\n\n\u003cdetails\u003e\n  \u003csummary\u003e\n    \u003cins\u003eSupported TeX Live versions\u003c/ins\u003e\n  \u003c/summary\u003e\n  \u003cp /\u003e\n  \u003ctable\u003e\n    \u003cthead\u003e\n      \u003ctr\u003e\n        \u003cth\u003eOS\u003c/th\u003e\n        \u003cth\u003eRunner\u003c/th\u003e\n        \u003cth\u003eVersions\u003c/th\u003e\n        \u003cth\u003eNote\u003c/th\u003e\n      \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n      \u003ctr\u003e\n        \u003cth rowspan=\"4\"\u003eLinux\u003c/th\u003e\n        \u003ctd\u003e\u003ccode\u003eubuntu-24.04\u003c/code\u003e*\u003c/td\u003e\n        \u003ctd rowspan=\"2\"\u003e\n\n\u003c!-- \u0026zwj; U+200D ZERO WIDTH JOINER --\u003e\n\n`2008`\u0026ndash;\u0026zwj;`2025`\n\n\u003c/td\u003e\n        \u003ctd rowspan=\"2\"\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e\u003ccode\u003eubuntu-22.04\u003c/code\u003e\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\n        \u003c!-- \u0026zwj; U+200D ZERO WIDTH JOINER --\u003e\n        \u003ctd\u003e\u003ccode\u003eubuntu-\u0026zwj;24.04-\u0026zwj;arm\u003c/code\u003e\u003c/td\u003e\n        \u003ctd rowspan=\"2\"\u003e\n\n`2017`\u0026ndash;`2025`\n\n\u003c/td\u003e\n        \u003ctd rowspan=\"2\"\u003e\n\nVersions prior to `2017` does not support AArch64 (ARM64).\n\n\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e\u003ccode\u003eubuntu-22.04-arm\u003c/code\u003e\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\n        \u003cth rowspan=\"3\"\u003eWindows\u003c/th\u003e\n        \u003ctd\u003e\u003ccode\u003ewindows-2025\u003c/code\u003e\u003c/td\u003e\n        \u003ctd rowspan=\"3\"\u003e\n\n`2008`\u0026ndash;`2025`\n\n\u003c/td\u003e\n        \u003ctd rowspan=\"3\"\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e\u003ccode\u003ewindows-2022\u003c/code\u003e*\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e\u003ccode\u003ewindows-2019\u003c/code\u003e\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\n        \u003cth rowspan=\"3\"\u003emacOS\u003c/th\u003e\n        \u003ctd\u003e\u003ccode\u003emacos-15\u003c/code\u003e\u003c/td\u003e\n        \u003ctd rowspan=\"3\"\u003e\n\n`2013`\u0026ndash;`2025`\n\n\u003c/td\u003e\n        \u003ctd rowspan=\"3\"\u003e\n\nVersions prior to `2013` are for 32-bit systems and\nwill not work due to _\u003cq\u003eBad CPU type in executable.\u003c/q\u003e_\n\n\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e\u003ccode\u003emacos-14\u003c/code\u003e*\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e\u003ccode\u003emacos-13\u003c/code\u003e\u003c/td\u003e\u003c/tr\u003e\n    \u003c/tbody\u003e\n    \u003ctfoot\u003e\n      \u003ctr\u003e\n        \u003ctd colspan=\"4\"\u003e\n          \u003cp /\u003e\n          \u003csub\u003e\n            The runners marked with \"*\" are\n            the current \u003ccode\u003e-latest\u003c/code\u003e runners (i.e.,\n            \u003ccode\u003eubuntu-latest\u003c/code\u003e,\n            \u003ccode\u003ewindows-latest\u003c/code\u003e, and\n            \u003ccode\u003emacos-latest\u003c/code\u003e).\n          \u003c/sub\u003e\n        \u003c/td\u003e\n      \u003c/tr\u003e\n    \u003c/tfoot\u003e\n  \u003c/table\u003e\n\u003c/details\u003e\n\n## Inputs\n\nAll inputs are optional.\n\n| Name                  | Type   | Description                                                                                                                                                                                                              |\n| --------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| `cache`               | Bool   | \u003cp\u003eEnable caching for [`TEXDIR`].\u003c/p\u003e **Default:**\u0026ensp;`true`                                                                                                                                                           |\n| `package-file`        | String | A (multi-line) [glob] string to specify files that contain package names to be installed. The file format is the same as the syntax for the `packages` input. In addition, the [`DEPENDS.txt`] format is also supported. |\n| `packages`            | String | TeX package names to be installed, separated by whitespaces. Schemes and collections are also acceptable. Everything from \"`#`\" to the end of line will be treated as a comment.                                         |\n| `prefix`              | String | \u003cp\u003eTeX Live installation prefix. This has the same effect as [`TEXLIVE_INSTALL_PREFIX`][install-tl-env-vars].\u003c/p\u003e **Default:**\u0026ensp;\u003ccode\u003e[$RUNNER_TEMP]/setup-texlive-action\u003c/code\u003e                                     |\n| `repository`          | URL    | Specify the [package repository URL] to be used as the main repository. Currently only http(s) repositories are supported.                                                                                               |\n| `texdir`              | String | TeX Live system installation directory. This has the same effect as the installer's [`-texdir`] option and takes precedence over the `prefix` input and related environment variables.                                   |\n| `tlcontrib`           | Bool   | \u003cp\u003eSet up [TLContrib] as an additional TeX package repository. This input will be ignored for older versions.\u003c/p\u003e **Default:**\u0026ensp;`false`                                                                              |\n| `update-all-packages` | Bool   | \u003cp\u003eUpdate all TeX packages when cache restored. Defaults to `false`, and the action will update only `tlmgr`.\u003c/p\u003e **Default:**\u0026ensp;`false`                                                                              |\n| `version`             | String | \u003cp\u003eTeX Live version to install. Supported values are `2008` to `2025`, and `latest`.\u003c/p\u003e **Default:**\u0026ensp;`latest` if the `repository` input is not set, otherwise the remote version will be assumed.                  |\n\n\u003c!-- TODO\n  - Provide a separate subsection on the input syntax and file format.\n  - Add a description for texmf-related inputs and profiles.\n--\u003e\n\n[$RUNNER_TEMP]: https://docs.github.com/en/actions/learn-github-actions/environment-variables#default-environment-variables\n[TLContrib]: https://contrib.texlive.info\n[`-texdir`]: https://tug.org/texlive/doc/install-tl.html#texdir-dir\n[`DEPENDS.txt`]: https://tug.org/texlive/pkgcontrib.html#deps \"Dependencies on other packages\"\n[install-tl-env-vars]: https://tug.org/texlive/doc/install-tl.html#ENVIRONMENT-VARIABLES\n[package repository URL]: https://tug.org/texlive/doc/texlive-en/texlive-en.html#x1-280003.3.1 \"3.3.1 The repository option\"\n\n## Outputs\n\n\u003c!-- \u0026zwj; U+200D ZERO WIDTH JOINER --\u003e\n\n| Name                             | Type   | Description                                                                              |\n| -------------------------------- | ------ | ---------------------------------------------------------------------------------------- |\n| `cache-hit`                      | Bool   | A boolean value to indicate if an exact cache match was found. Implies `cache-restored`. |\n| \u003ccode\u003ecache-\u0026zwj;restored\u003c/code\u003e | Bool   | A boolean value to indicate if a cache was found.                                        |\n| `version`                        | String | The installed TeX Live version.                                                          |\n\n## Environment Variables\n\nThe action reads the following environment variable:\n\n\u003c!-- U+200B ZERO WIDTH SPACE --\u003e\n\n| Name                                                          | Type   | Description                                                                                                                                                                                                                                        |\n| ------------------------------------------------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| \u003ccode\u003eSETUP_TEXLIVE_ACTION_\u0026#x200B;FORCE_UPDATE_CACHE\u003c/code\u003e  | String | Setting this to anything other than `0`, the action will use a [unique cache key each time][update-a-cache] to keep the cache up-to-date.\u003cp /\u003e\u003cblockquote\u003e:warning:\u0026ensp;Enabling this will consume more [cache space][cache-limits].\u003c/blockquote\u003e |\n| \u003ccode\u003eSETUP_TEXLIVE_ACTION_\u0026#x200B;NO_CACHE_ON_FAILURE\u003c/code\u003e | String | Setting this to anything other than `0`, no cache will be saved when a job fails.                                                                                                                                                                  |\n| [`NO_COLOR`](https://no-color.org/)                           | String | Disable color output.                                                                                                                                                                                                                              |\n\n[cache-limits]: https://github.com/actions/cache#cache-limits\n[update-a-cache]: https://github.com/actions/cache/blob/main/tips-and-workarounds.md#update-a-cache\n\nIn addition,\nthe [official environment variables][install-tl-env-vars] for `install-tl`\nare supported, with the exception of `TEXLIVE_INSTALL_TEXMFSYS(CONFIG|VAR)`\nin order to ensure system directories are cached correctly.\n\nTo specify the installation prefix, either the input `prefix` or\nthe environment variable `TEXLIVE_INSTALL_PREFIX` can be used,\nwith `prefix` taking precedence if both are set.\nPrecedence for all other texmf-related inputs and environment variables follows\nthe behavior of the latest version of `install-tl`.\n\n\u003cdetails\u003e\n  \u003csummary\u003e\n    \u003cins\u003eDefault values in this action\u003c/ins\u003e\n  \u003c/summary\u003e\n  \u003cp /\u003e\n\n| Name                               | Default                                          |\n| ---------------------------------- | ------------------------------------------------ |\n| `TEXLIVE_DOWNLOADER`               |                                                  |\n| `TL_DOWNLOAD_PROGRAM`              |                                                  |\n| `TL_DOWNLOAD_ARGS`                 |                                                  |\n| `TEXLIVE_INSTALL_ENV_NOCHECK`      | `1`                                              |\n| `TEXLIVE_INSTALL_NO_CONTEXT_CACHE` |                                                  |\n| `TEXLIVE_INSTALL_NO_DISKCHECK`     |                                                  |\n| `TEXLIVE_INSTALL_NO_RESUME`        |                                                  |\n| `TEXLIVE_INSTALL_NO_WELCOME`       | `1`                                              |\n| `TEXLIVE_INSTALL_PAPER`            |                                                  |\n| `TEXLIVE_INSTALL_PREFIX`           | \u003ccode\u003e[$RUNNER_TEMP]/setup-texlive-action\u003c/code\u003e |\n| `TEXLIVE_INSTALL_TEXMFLOCAL`       |                                                  |\n| `TEXLIVE_INSTALL_TEXMFHOME`        | Same as `TEXMFLOCAL`                             |\n| `TEXLIVE_INSTALL_TEXMFCONFIG`      | Same as `TEXMFSYSCONFIG`                         |\n| `TEXLIVE_INSTALL_TEXMFVAR`         | Same as `TEXMFSYSVAR`                            |\n| `NOPERLDOC`                        |                                                  |\n\n\u003c/details\u003e\n\n## Permissions\n\nThis action does not use [`GITHUB_TOKEN`] and\ndoes not require any [permissions].\n\n[`GITHUB_TOKEN`]: https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token\n[permissions]: https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#jobsjob_idpermissions\n\n## Troubleshooting\n\n\u003e If a problem persists, feel free to open an issue.\n\n- [Dependency Issues](#dependency-issues)\n- [Repository-Related Issues](#repository-related-issues)\n- [Local Testing](#local-testing)\n- [Debug Logging](#debug-logging)\n\n### Dependency Issues\n\nUnlike other package managers such as `pip` or `npm`,\nTeX Live (`tlmgr`) has very little dependency management,\nso generally it is difficult to determine exactly which packages you need.\nLacking some indirect dependencies,\nyou may often encounter compilation errors like:\n\n```console\n! LaTeX Error: File `XXXXX.sty` not found.\n```\n\nWhile there is no perfect solution,\nthere are some tools that can help address this problem:\n\n| Name           | Version                                     | Description                                          |\n| -------------- | ------------------------------------------- | ---------------------------------------------------- |\n| [DEPP]         | [![GitLab][DEPP-badge]][DEPP]               | Dependency Printer for TeX Live                      |\n| [TeXFindPkg]   | [![CTAN][TeXFindPkg-badge]][TeXFindPkg]     | Query or install TeX packages and their dependencies |\n| [texliveonfly] | [![CTAN][texliveonfly-badge]][texliveonfly] | On-the-fly download of missing TeX live packages     |\n\n[DEPP-badge]: https://img.shields.io/gitlab/v/tag/islandoftex%2Ftexmf%2Fdepp?logo=gitlab\u0026logoColor=fc6d26\u0026label=GitLab\u0026labelColor=2e353b\u0026color=fc6d26\n[DEPP]: https://gitlab.com/islandoftex/texmf/depp\n[TeXFindPkg-badge]: https://img.shields.io/ctan/v/texfindpkg?label=CTAN\u0026labelColor=2e353b\u0026color=424285\n[TeXFindPkg]: https://ctan.org/pkg/texfindpkg\n[texliveonfly-badge]: https://img.shields.io/ctan/v/texliveonfly?label=CTAN\u0026labelColor=2e353b\u0026color=424285\n[texliveonfly]: https://ctan.org/pkg/texliveonfly\n\n### Repository-Related Issues\n\nBy default, the action automatically picks\none of the [CTAN mirrors](https://ctan.org/mirrors) and\nsets it as the main package repository for the installation.\nInfrequently, there may be some problem with the repository,\ncausing setup to fail with log messages like:\n\n- ```console\n  Error: unable to verify the first certificate\n  ```\n\n- ```console\n  TeXLive::TLUtils::check_file_and_remove:\n    checksums differ for /tmp/path/to/some/package.tar.xz:\n  ```\n\n- ```console\n  gpg: BAD signature from \"TeX Live Distribution \u003ctex-live@tug.org\u003e\" [ultimate]\n  ```\n\nIn most cases, these problems do not last so long and\nafter a while the workflow should be stable again.\n\nAlternatively, you can pin the main repository\nusing the `repository` input to avoid using problematic repositories:\n\n```yaml\n- uses: teatimeguest/setup-texlive-action@v3\n  with:\n    repository: https://example.com/path/to/systems/texlive/tlnet/\n```\n\nFor more information on the repository URL format,\nsee \"[3.3.1 The `-repository` option][package repository URL]\"\nin the official TeX Live documentation.\n\n### Local Testing\n\nIf you are using a container engine such as `docker`,\n[`act`](https://nektosact.com) allows you\nto run a workflow locally inside a container environment,\nwithout having to push changes to GitHub, saving a lot of time in setup for CI.\nThis action can be run on a [`node:20`](https://hub.docker.com/_/node) image,\nso the following configuration is\na good starting point for testing or debugging with `act`:\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"right\"\u003e\n      \u003ca href=\"https://nektosact.com/usage/index.html#configuration-file\"\u003e\n        \u003csamp\u003e\u003ccode\u003e.actrc\u003c/code\u003e\u003c/samp\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"1200\"\u003e\n\n```opts\n--platform ubuntu-latest=node:20\n--pull=false\n--detect-event\n--env RUNNER_DEBUG=1           # Enable debug logging\n# --env NODE_DEBUG=\u003cmodule\u003e    # Might be useful in few cases\n```\n\n\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n### Debug Logging\n\nOn GitHub, debug logging can be enabled without modifying a workflow file\nby setting repository configuration variables.\nSee the [GitHub Docs][enabling-debug-logging] for more information.\n\n[enabling-debug-logging]: https://docs.github.com/en/actions/monitoring-and-troubleshooting-workflows/enabling-debug-logging\n\n## Changelog\n\nSee the [releases page](https://github.com/teatimeguest/setup-texlive-action/releases).\n\n## License\n\n[MIT License](./LICENSE)\n\nFor third-party software licenses and copyright notices,\nplease refer to [dist/NOTICE.md](./dist/NOTICE.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteatimeguest%2Fsetup-texlive-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fteatimeguest%2Fsetup-texlive-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteatimeguest%2Fsetup-texlive-action/lists"}