actions

Subscribe to all “actions” posts via RSS or follow GitHub Changelog on Twitter to stay updated on everything we ship.

~ cd github-changelog
~/github-changelog|main git log main
showing all changes successfully

We’ve added some new workflow features to GitHub Actions based on your feedback.

Workflow and job level run defaults.

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

Job outputs

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

Matrix include lets you include new combinations

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

Expressions in 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 }}

New fromJSON() method in expressions

The 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

Learn more about fromJson

New github context properties

The 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

New steps context properties

The 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

See more

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.

See more

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
See more

We’ve fully deployed several updates to the macOS 10.15 virtual environment. You can see what changed in the diff here. Highlights include:

    • Xcode 11.2.1 is set by default
    • Added Xcode 11.3
    • Upgraded to Node.js 12.14.0 from 12.13.1
    • Upgraded to Yarn 1.21.1 from 1.19.2
    • Added CMake 3.16.2
    • Upgraded to Visual Studio for Mac 8.3.11.1 from 8.3.10.2
    • Upgraded to Android Emulator 29.3.2 from 29.2.11
See more

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.

See more

We’ve fully deployed several updates to the GitHub Actions virtual environments. Highlights include:

    • Upgraded to Visual Studio 16.4.0 (Windows Server 2019)
    • Upgraded to Firefox 71.0 (Ubuntu 18.04, Windows Server 2016, and Windows Server 2019)

You can find more information in the docs. Please note that we plan to pause updates until January 2020.

See more

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:

  • Xcode 11.1 will be set as default
  • Mono 6.4, Xamarin.iOS 13.4, Xamarin.Android 10.0, Xamarin.Mac 6.2 will be set as default
  • .NET Core 3.0 will be set as default
  • Node.JS 12 will be set as default
  • Removed Xamarin.iOS 13.2
  • Removed Xamarin.iOS SDK 12.*
  • Removed Xamarin.iOS SDK 11.*
  • Removed Xamarin.iOS SDK 10.*
  • Removed Xamarin.Android SDK 9.*
  • Removed Xamarin.Android SDK 8.*
  • Removed Xamarin.Android SDK 7.*
  • Removed Xamarin.Mac SDK – 5.*
  • Removed Xamarin.Mac SDK – 4.*
  • Removed Xamarin.Mac SDK – 3.*
  • Removed Mono 4.x
  • Removed Mono 5.x
  • Removed Mono 6.0
  • Removed Xcode 10.*
  • Removed Xcode 9.*
  • Removed legacy iOS Simulators (iOS 8.4 – 10.2)
  • Removed .NET Core 2.x (only 3.x are on image)
  • Removed Android build tools less than 24.0.0

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.

See more

We’ve fully deployed several updates to the GitHub Actions virtual environments. Highlights include:

Ubuntu 16.04 LTS

  • Added newer versions and removed older versions of .NET Core SDK
  • Upgraded Erlang 10.4.4 to 10.5.3
  • Upgraded Firefox 69.0 to 70.0
  • Upgraded Git LFS 2.8.0 to 2.9.0
  • Upgraded Google Chrome 77.0.3865.90 to 78.0.3904.70
  • Upgraded Google Cloud SDK 263.0.0 to 268.0.0
  • Added Haskell Cabal 2.0.0.1, 2.2.0.0, 2.4.1.0, 3.0.0.0
  • Added Haskell Stack 2.1.3
  • Upgraded Heroku 7.30.0 to 7.33.3
  • Upgraded HHVM 4.23.0 to 4.28.1
  • Upgraded kubectl v1.15.4 to v1.16.2
  • Upgraded helm v2.14.3 to v2.15.1
  • Added Kind v0.5.1
  • Changed default Node from v10.16.3 to v12.13.0
  • Upgraded Webpack 4.40.2 to 4.41.2
  • Upgraded Yarn 1.17.3 to 1.19.1
  • Upgraded rustup 1.19.0 to 1.20.2
  • Upgraded rust 1.37.0 to 1.38.0
  • Upgraded cargo 1.37.0 to 1.38.0
  • Upgraded Zeit Now CLI 16.2.0 to 16.4.0
  • Added Az Module 2.3.2 and 2.6.0
  • Upgraded Python 3.7.4 to 3.7.5
  • Added Python 3.8.0

Ubuntu 18.04 LTS

  • Added .NET Core SDK 3.0.100
  • Upgraded Erlang 10.4.4 to 10.5.3
  • Upgraded Firefox 69.0 to 70.0
  • Upgraded Git LFS 2.8.0 to 2.9.0
  • Upgraded Google Chrome 77.0.3865.90 to 78.0.3904.70
  • Upgraded Google Cloud SDK 263.0.0 to 268.0.0
  • Added Haskell Cabal 2.0.0.1, 2.2.0.0, 2.4.1.0, 3.0.0.0
  • Added Haskell Stack 2.1.3
  • Upgraded Heroku 7.30.0 to 7.33.3
  • Upgraded HHVM 4.23.0 to 4.28.1
  • Upgraded kubectl v1.15.4 to v1.16.2
  • Upgraded helm v2.14.3 to v2.15.1
  • Added Kind v0.5.1
  • Changed default Node from v10.16.3 to v12.13.0
  • Upgraded Webpack 4.40.2 to 4.41.2
  • Upgraded Yarn 1.17.3 to 1.19.1
  • Upgraded rustup 1.19.0 to 1.20.2
  • Upgraded rust 1.37.0 to 1.38.0
  • Upgraded cargo 1.37.0 to 1.38.0
  • Upgraded Zeit Now CLI 16.2.0 to 16.4.0
  • Added Az Module 1.0.0, 2.3.2, and 2.6.0
  • Upgraded Python 3.7.4 to 3.7.5
  • Added Python 3.8.0

Windows Server 2016

  • Upgraded Python 3.7.4 to 3.7.5
  • Upgraded PHP 7.3.10 to 7.3.11
  • Changed default Node from v10.16.3 to v12.13.0
  • Upgraded npm 6.9.0 to 6.12.0
  • Added .NET Core SDK 3.0.100 and .NET Core Runtime 3.0.0
  • Upgraded Azure CosmosDb Emulator 2.5.7 to 2.7.0
  • Upgraded Cloud Foundry CLI 6.46.1 to 6.47.1
  • Added kubectl v1.16.2
  • Added Kind v0.5.1

Windows Server 2019

  • Added LLVM to the Visual Studio 2019 installation
  • Upgraded Python 3.7.4 to 3.7.5
  • Upgraded PHP 7.3.10 to 7.3.11
  • Changed default Node from v10.16.3 to v12.13.0
  • Upgraded npm 6.9.0 to 6.12.0
  • Upgraded Azure CosmosDb Emulator 2.5.7 to 2.7.0
  • Upgraded Cloud Foundry CLI 6.46.1 to 6.47.1
  • Added kubectl v1.16.2
  • Added Kind v0.5.1
See more

On November 4th, the macOS virtual environment for GitHub Actions will update to Catalina (v10.15), the latest version of macOS X. After the update, jobs using the macos-10.14 virtual environment will not run. Any jobs in your workflows that run on the macos-10.14 virtual environment must migrate to macos-latest.

We’re also making a few changes to the minimum supported versions of Xamarin and Xcode. Changes include:

  • Removed Xamarin.iOS SDK 12.*
  • Removed Xamarin.iOS SDK 11.*
  • Removed Xamarin.iOS SDK 10.*
  • Removed Xamarin.Android SDK 9.*
  • Removed Xamarin.Android SDK 8.*
  • Removed Xamarin.Android SDK 7.*
  • Removed Xamarin.Mac SDK – 5.*
  • Removed Xamarin.Mac SDK – 4.*
  • Removed Xamarin.Mac SDK – 3.*
  • Removed Xcode 10.*
  • Removed Xcode 9.*

To learn more about the different virtual environments and included software, please read Virtual Environments for GitHub Actions. Please contact GitHub Support if you run into any problems or need help.

See more