Co-authored-by: Kevin Heis <heiskr@users.noreply.github.com> Co-authored-by: Sarah Edwards <skedwards88@github.com>
87 lines
2.4 KiB
Markdown
87 lines
2.4 KiB
Markdown
---
|
|
title: Customizing GitHub-hosted runners
|
|
intro: You can install additional software on GitHub-hosted runners as a part of your workflow.
|
|
versions:
|
|
fpt: '*'
|
|
ghec: '*'
|
|
type: tutorial
|
|
topics:
|
|
- Workflows
|
|
shortTitle: Customize runners
|
|
---
|
|
|
|
{% data reusables.actions.enterprise-github-hosted-runners %}
|
|
|
|
If you require additional software packages on {% data variables.product.prodname_dotcom %}-hosted runners, you can create a job that installs the packages as part of your workflow.
|
|
|
|
To see which packages are already installed by default, see "[Preinstalled software](/actions/using-github-hosted-runners/about-github-hosted-runners#preinstalled-software)."
|
|
|
|
This guide demonstrates how to create a job that installs additional software on a {% data variables.product.prodname_dotcom %}-hosted runner.
|
|
|
|
## Installing software on Ubuntu runners
|
|
|
|
The following example demonstrates how to install an `apt` package as part of a job.
|
|
|
|
```yaml
|
|
name: Build on Ubuntu
|
|
on: push
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Check out repository code
|
|
uses: {% data reusables.actions.action-checkout %}
|
|
- name: Install jq tool
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install jq
|
|
```
|
|
|
|
{% note %}
|
|
|
|
**Note:** Always run `sudo apt-get update` before installing a package. In case the `apt` index is stale, this command fetches and re-indexes any available packages, which helps prevent package installation failures.
|
|
|
|
{% endnote %}
|
|
|
|
## Installing software on macOS runners
|
|
|
|
The following example demonstrates how to install Brew packages and casks as part of a job.
|
|
|
|
```yaml
|
|
name: Build on macOS
|
|
on: push
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: macos-latest
|
|
steps:
|
|
- name: Check out repository code
|
|
uses: {% data reusables.actions.action-checkout %}
|
|
- name: Install GitHub CLI
|
|
run: |
|
|
brew update
|
|
brew install gh
|
|
- name: Install Microsoft Edge
|
|
run: |
|
|
brew update
|
|
brew install --cask microsoft-edge
|
|
```
|
|
|
|
## Installing software on Windows runners
|
|
|
|
The following example demonstrates how to use [Chocolatey](https://community.chocolatey.org/packages) to install the {% data variables.product.prodname_dotcom %} CLI as part of a job.
|
|
|
|
{% raw %}
|
|
```yaml
|
|
name: Build on Windows
|
|
on: push
|
|
jobs:
|
|
build:
|
|
runs-on: windows-latest
|
|
steps:
|
|
- run: choco install gh
|
|
- run: gh version
|
|
```
|
|
{% endraw %}
|