The GitHub Actions runner now sets the CI=true
environment variable by default.
Learn more about GitHub Actions default environment variables
The GitHub Actions runner now sets the CI=true
environment variable by default.
Learn more about GitHub Actions default environment variables
We’ve added some new workflow features to GitHub Actions based on your feedback.
You can specify the shell
and working-directory
for the run
action at either the job or workflow level, which makes using a shell different from the system’s default shell less verbose.
Learn more about run defaults
You can specify a set of outputs
that you want to pass to subsequent jobs and then access those values from your needs
context.
Learn more about job outputs
Previously the include
in a matrix would only let you augment existing combinations. Now you can include
completely new combinations and even specify all of your matrix legs with include
.
Learn more about matrix include
job.continue-on-error
You can now use expressions in the continue-on-error
property for a job
. This can be useful when you want to allow some jobs to fail based on runtime values such as a matrix.
jobs:
build:
strategy:
matrix:
os: ubuntu-latest, macos-latest, windows-latest
node: [10, 12, 13]
include:
node: 13
continue-on-error: true
continue-on-error: ${{ matrix.continue-on-error }}
fromJSON()
method in expressionsThe Actions expression language has a fromJSON(value)
method that can take a stingified JSON object and bind it to a property.
Combining this with job.outputs
you can build a workflow that has a fully dynamic matrix.
name: build
on: push
jobs:
job1:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- id: set-matrix
run: echo "::set-output name=matrix::{\"include\":[{\"project\":\"foo\",\"config\":\"Debug\"},{\"project\":\"bar\",\"config\":\"Release\"}]}"
job2:
needs: job1
runs-on: ubuntu-latest
strategy:
matrix: ${{fromJson(needs.job1.outputs.matrix)}}
steps:
- run: build
github
context propertiesThe github
context now has the repository_owner
and job
properties. The repository_owner
is the account or organization that owns the repository. The job
property contains the id
of the job as specified in the workflow file.
Learn more about the github context
steps
context propertiesThe steps
context now has properties for the outcome
and conclusion
. This allows you to conditionalize subsequent steps based on the the success or failure of a specific step.
Learn more about the steps context
The GitHub Actions API is now generally available and out of beta.
Thank you to everyone who tried out this API and provided feedback during the beta period. For support, visit the GitHub Actions community.
Self-Hosted Runners now fully support environments that use a proxy server to connect to GitHub. You can add your proxy server as a Runner setting and leverage common Unix-style proxy environment variables like no_proxy
exclusion lists.
Additionally, Actions built using the toolkit will now follow your proxy settings. This includes the common Actions included at github.com/actions.
Learn more about using self-hosted runners behind a proxy here.
The GitHub Actions API beta is now available. In addition to reading workflow and run data, Actions users can now automate common scenarios like managing secrets or registering runners.
We have changed the artifact download experience in GitHub Actions so it no longer adds an extra root directory to the downloaded archive.
Previously, if you uploaded the following files and folders as an artifact named `foo`, the downloaded archive would contain the following structure:
foo/ |-- file1.txt |-- dir1/ | |-- dir1-file1.txt
Now, you will get an archive that only contains the files and folders you uploaded:
file1.txt dir1/ |-- dir1-file1.txt
We’ve fully deployed several updates to the macOS 10.15 virtual environment. You can see what changed in the diff here. Highlights include:
The GitHub Actions Runner is now open sourced. File issues and contribute to one of the most important components of GitHub Actions directly at:
https://github.com/actions/runner
The Runner is the application that runs a job from a GitHub Actions workflow. Jobs can be run in GitHub’s hosted virtual environments, or in your own self-hosted environment. Learn more about using self-hosted runners with your workflows here.
We’ve fully deployed several updates to the GitHub Actions virtual environments. Highlights include:
You can find more information in the docs. Please note that we plan to pause updates until January 2020.
AWS and Google Cloud Platform released officially supported actions at GitHub Universe. The actions/aws and actions/gcloud actions are deprecated and archived. To make sure your workflows continue to run you must migrate to the official actions.
GitHub Actions now supports self-hosted runners on the ARM and ARM64 architectures. When adding a new Linux runner to your repository, simply select which architecture you need and follow the rest of the instructions as you normally would.
Learn more about using self-hosted runners with your workflows here.
The GitHub Actions macOS virtual environment has been upgraded to Catalina (v10.15). Jobs using the `macos-10.14` virtual environment will not run and must be migrated to use `macos-latest`.
In addition to Catalina, other changes include:
To learn more about the different virtual environments and included software, please read Virtual Environments for GitHub Actions. Also, please contact GitHub Support if you run into any problems or need help.
We’ve fully deployed several updates to the GitHub Actions virtual environments. Highlights include:
Ubuntu 16.04 LTS
Ubuntu 18.04 LTS
Windows Server 2016
Windows Server 2019