Git Product home page Git Product logo

runner-images's Introduction

GitHub Actions Runner Images

Table of Contents

About

This repository contains the source code used to create the VM images for GitHub-hosted runners used for Actions, as well as for Microsoft-hosted agents used for Azure Pipelines. To build a VM machine from this repo's source, see the instructions.

Available Images

Image YAML Label Included Software Rollout Status of Latest Image Release
Ubuntu 24.04 beta ubuntu-24.04 ubuntu-24.04 Endpoint Badge
Ubuntu 22.04 ubuntu-latest or ubuntu-22.04 ubuntu-22.04 Endpoint Badge
Ubuntu 20.04 ubuntu-20.04 ubuntu-20.04 Endpoint Badge
macOS 14 macos-latest-large or macos-14-large macOS-14 Endpoint Badge
macOS 14 Arm64 macos-latest, macos-14, macos-latest-xlarge or macos-14-xlarge macOS-14-arm64 Endpoint Badge
macOS 13 macos-13 or macos-13-large macOS-13 Endpoint Badge
macOS 13 Arm64 macos-13-xlarge macOS-13-arm64 Endpoint Badge
macOS 12 macos-12 or macos-12-large macOS-12 Endpoint Badge
macOS 11 deprecated macos-11 macOS-11 Endpoint Badge
Windows Server 2022 windows-latest or windows-2022 windows-2022 Endpoint Badge
Windows Server 2019 windows-2019 windows-2019 Endpoint Badge

Label scheme

  • In general the -latest label is used for the latest OS image version that is GA
  • Before moving the-latest label to a new OS version we will announce the change and give sufficient lead time for users to update their workflows

Announcements

See notable upcoming changes by viewing issues with the Announcement label.

Image Definitions

Beta

The purpose of a Beta is to collect feedback on an image before it is released to GA. The goal of a Beta is to identify and fix any potential issues that exist on that image. Images are updated on a weekly cadence. Any workflows that run on a beta image do not fall under the customer SLA in place for Actions. Customers choosing to use Beta images are encouraged to provide feedback in the runner-images repo by creating an issue. A Beta may take on different availability, i.e. public vs private.

GA

A GA (General Availability) image has been through a Beta period and is deemed ready for general use. Images are updated on a weekly cadence. In order to be moved to GA the image must meet the following criteria:

  1. Has been through a Beta period (public or private)
  2. Most major software we install on the image has a compatible version for the underlying OS and
  3. All major bugs reported during the Beta period have been addressed.

This image type falls under the customer SLA for actions. GA images are eventually deprecated according to our guidelines as we only support the latest 2 versions of an OS.

Latest Migration Process

GitHub Actions and Azure DevOps use the -latest YAML label (ex: ubuntu-latest, windows-latest, and macos-latest). These labels point towards the newest stable OS version available.

The -latest migration process is gradual and happens over 1-2 months in order to allow customers to adapt their workflows to the newest OS version. During this process, any workflow using the -latest label, may see changes in the OS version in their workflows or pipelines. To avoid unwanted migration, users can specify a specific OS version in the yaml file (ex: macos-12, windows-2022, ubuntu-22.04).

Image Releases

How to best follow along with changes

  1. Find the latest releases for this repository here.

  2. Subscribe to the releases coming out of this repository, instructions here.

  3. Upcoming changes: A pre-release is created when the deployment of an image has started. As soon as the deployment is finished, the pre-release is converted to a release. If you have subscribed to releases, you will get notified of pre-releases as well.

  4. For high impact changes, we will post these in advance to the GitHub Changelog on our blog and on twitter.

    • Ex: breaking changes, GA or deprecation of images

Cadence

  • We typically deploy weekly updates to the software on the runner images.

Software and Image Support

Support Policy

  • Tools and versions will typically be removed 6 months after they are deprecated or have reached end-of-life

  • We support (at maximum) 2 GA images and 1 beta image at a time. We begin the deprecation process of the oldest image label once the newest OS image label has been released to GA.

  • The images generally contain the latest versions of packages installed except for Ubuntu LTS where we mostly rely on the Canonical-provided repositories.

  • Popular tools can have several versions installed side-by-side with the following strategy:

Tool name Installation strategy
Docker images not more than 3 latest LTS OS\tool versions. New images or new versions of current images are added using the standard tool request process
Java all LTS versions
Node.js 3 latest LTS versions
Go 3 latest minor versions
Python
Ruby
5 most popular major.minor versions
PyPy 3 most popular major.minor versions
.NET Core 2 latest LTS versions and 1 latest version. For each feature version only latest patch is installed
GCC
GNU Fortran
Clang
GNU C++
3 latest major versions
Android NDK 1 latest non-LTS, 2 latest LTS versions
Xcode - all OS compatible versions side-by-side
- for beta, GM versions - latest beta only
- old patch versions are deprecated in 3 months

Package managers usage

We use third-party package managers to install software during the image generation process. The table below lists the package managers and the software installed.

Note: third-party repositories are re-evaluated every year to identify if they are still useful and secure.

Operating system Package manager Third-party repos and packages
Ubuntu APT containers (Ubuntu 20 only)
docker (Ubuntu20 0nly)
Eclipse-Temurin (Adoptium)
Erlang
Firefox
git-lfs
git
Google Cloud CLI
Heroku
HHvm
MongoDB
Mono
MS Edge
PostgreSQL
R
pipx ansible-core
yamllint
Windows Chocolatey No third-party repos installed
macOS Homebrew aws-cli v2
azure/bicep
mongodb/brew
pipx yamllint

Image Deprecation Policy

  • Images begin the deprecation process of the oldest image label once a new GA OS version has been released.
  • Deprecation process begins with an announcement that sets a date for deprecation
  • As it gets closer to the date, GitHub begins doing scheduled brownouts of the image
  • During this time there will be an Announcement pinned in the repo to remind users of the deprecation.
  • Finally GitHub will deprecate the image and it will no longer be available

Preinstallation Policy

In general, these are the guidelines we follow when deciding what to pre-install on our images:

  • Popularity: widely-used tools and ecosystems will be given priority.
  • Latest Technology: recent versions of tools will be given priority.
  • Deprecation: end-of-life tools and versions will not be added.
  • Licensing: MIT, Apache, or GNU licenses are allowed.
  • Time & Space on the Image: we will evaluate how much time is saved and how much space is used by having the tool pre-installed.
  • Support: If a tool requires the support of more than one version, we will consider the cost of this maintenance.

Default Version Update Policy

  • In general, once a new version is installed on the image, we announce the default version update 2 weeks prior to deploying it.
  • For potentially dangerous updates, we may extend the timeline up to 1 month between the announcement and deployment.

How to Interact with the Repo

  • Issues: To file a bug report, or request tools to be added/updated, please open an issue using the appropriate template
  • Discussions: If you want to share your thoughts about image configuration, installed software, or bring a new idea, please create a new topic in a discussion for a corresponding category. Before making a new discussion please make sure no similar topics were created earlier.
  • For general questions about using the runner images or writing your Actions workflow, please open requests in the GitHub Actions Community Forum.

FAQs

What images are available for GitHub Actions and Azure DevOps?

The availability of images for GitHub Actions and Azure DevOps is the same. However, deprecation policies may differ. See documentation for more details:

What image version is used in my build?

Usually, image deployment takes 2-3 days, and documentation in the main branch is only updated when deployment is finished. To find out which image version and what software versions are used in a specific build, see Set up job (GitHub Actions) or Initialize job (Azure DevOps) step log. actions-runner-image

Looking for other Linux distributions?

We do not plan to offer other Linux distributions. We recommend using Docker if you'd like to build using other distributions with the hosted runner images. Alternatively, you can leverage self-hosted runners and fully customize your VM image to your needs.

How do I contribute to the macOS source?

macOS source lives in this repository and is available for everyone. However, macOS image-generation CI doesn't support external contributions yet so we are not able to accept pull-requests for now.

We are in the process of preparing macOS CI to accept contributions. Until then, we appreciate your patience and ask you to continue to make tool requests by filing issues.

How does GitHub determine what tools are installed on the images?

For some tools, we always install the latest at the time of the deployment; for others, we pin the tool to specific version(s). For more details please see the Preinstallation Policy

How do I request that a new tool be pre-installed on the image? Please create an issue and get an approval from us to add this tool to the image before creating the pull request.
What branch should I use to build custom image? We strongly encourage customers to build their own images using the main branch. This repository contains multiple branches and releases that serve as document milestones to reflect what software is installed in the images at certain point of time. Current builds are not idempotent and if one tries to build a runner image using the specific tag it is not guaranteed that the build will succeed.

runner-images's People

Contributors

459680 avatar al-cheb avatar alenasviridenko avatar alepauly avatar alexey-ayupov avatar andreymaslennikov avatar andy-mishechkin avatar chrisgavin avatar darleev avatar ddobranic avatar dibir-magomedsaygitov avatar dmitry-shibanov avatar erik-bershel avatar github-actions[bot] avatar ilia-shipitsin avatar kaylangan avatar leonidlapshin avatar maksimzhukov avatar maxim-lobanov avatar miketimofeev avatar mikhailkoliada avatar nikita-bykov avatar nikolai-frolov avatar sergei-pyshnoi avatar shadyysf avatar shamil-mubarakshin avatar shilovmaksim avatar vmapetr avatar vpolikarpov-akvelon avatar vsafonkin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

runner-images's Issues

Add Qt for Windows environments

Tool information

  • Tool name: Qt
  • Add or update? Add
  • Desired version: Latest stable
  • Approximate size:
  • If this is an add request:
    • Brief description of tool: Qt, cross platform UI framework
    • URL for tool's homepage: https://www.qt.io/

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Can this tool be installed during the build?
It can be, but it's not trivial. There is some discussions going on in the feature request thread on the community site: https://github.community/t5/GitHub-Actions/Feature-request-Pre-installed-Qt-on-Windows/m-p/31004#M680

Cannot build Python C extensions on Windows

Describe the bug
The following standard build command for C extensions in Python fails for all Windows environments for all supported Python versions:

python setup.py build_ext --inplace

It appears that the appropriate versions of Microsoft Visual C++ are not installed/configured.

Please note that the correct MSVC++ version varies across Python versions; see here for specifics.

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Expected behavior
It should be possible to build Python C extensions in Windows virtual environments. For a Python build/test pipeline, this means selecting the correct version to use for a given Python version.

Actual behavior
This should be reproducible for any Python library with any C (or Cython) components on Windows. I encountered the issue while attempting to configure Github Actions for such a library that I maintain. An example of a failed build log is https://github.com/pydata/bottleneck/runs/240915673

  1. Use the workflow file found here: pydata/bottleneck@630a398#diff-fd3c00174dcaf7b8a36765f1a3de6791
  2. Build will fail at C compilation step as the appropriate version of MS Visual C++ is not installed.
    Screenshot from 2019-10-05 13-55-10
  3. When fixed, it should be possible to build Python C extensions on Windows.

Add MSYS2 to Windows

Tool information

  • Tool name: MSYS2
  • Add or update? Add
  • Desired version: Latest
  • Approximate size:
  • If this is an add request:
    • Brief description of tool: Providing MSYS2 instead of MinGW would enable a way easier package management for MinGW (via Pacman) and also faster builds.
    • URL for tool's homepage: https://www.msys2.org/

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Can this tool be installed during the build?
Yes, via choco install msys2.

Are you willing to submit a PR?

Hosted images are not properly caching versions of node

Describe the bug
The windows image has a different version of node installed and cached from the other images making matrix testing inconsistent.

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Expected behavior
A consistent version of node. I realize that timing of images will vary but I don't think that's the issue. I think the image cache and the scripts are inconsistent between the images.

Actual behavior
Insonsistent versions of node.

See: actions/setup-node#27

Ruby bundler should be installed by default

When using setup-ruby, on ubuntu, bundler is not installed, and can be installed by gem install bundler.

But on macos, bundler is available by default, but also breaks if you try to install it using gem install bundler.

Can we just have it installed by default?

Add Vault

Tool information

  • Tool name: Hashicorp Vault
  • Add or update? Add
  • Desired version: latest
  • Approximate size: 31MB
  • If this is an add request:
    • Brief description of tool: A tool for secrets management, encryption as a service, and privileged access management
    • URL for tool's homepage: https://github.com/hashicorp/vault

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Can this tool be installed during the build?
Yes, include binary in image.

Are you willing to submit a PR?
willing to try.

Add Flutter SDK

Tool information

  • Tool name: Flutter SDK
  • Add or update? Add
  • Desired version: Whatever is latest
  • Approximate size: 500 MB
  • If this is an add request:
    • Brief description of tool: Flutter is a Google SDK for building cross-platform Android, iOS (MacOS host only), Web and desktop apps.
    • URL for tool's homepage: https://flutter.dev

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Can this tool be installed during the build?
Yes, using subosito/flutter-action, takes ~60s to complete

Add MongoDB Community Edition

Tool information

  • Tool name: mongo and mongod
  • Add or update? Add
  • Desired version: 3.x, 4.x
  • Approximate size: 250-300MB
  • If this is an add request:

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Can this tool be installed during the build?

Are you willing to submit a PR?

Update/Add awscli

Aws cli is available on Ubuntu environments, but not on Windows environments

Tool information

  • Tool name: awscli
  • Add or update? add
  • Desired version: latest version
  • Approximate size: 90 MB
  • If this is an add request:
    • Brief description of tool: command line interface for interacting with AWS services
    • URL for tool's homepage: https://aws.amazon.com/cli/

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Can this tool be installed during the build?
On windows environments a user can run pip install awscli to get a python version of the tool, but there's a small pre-built binary available from Amazon that would be useful to reduce build time

Add LLVM to Windows Server 2019

Tool information

  • Tool name: LLVM
  • Add or update? Add
  • Desired version:
  • Approximate size:
  • If this is an add request:
    • Brief description of tool: So we can use clang on windows without downloading any dependencies
    • URL for tool's homepage:

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Can this tool be installed during the build?

Are you willing to submit a PR?
Just need to add to the Visual Studio installation:

  • Microsoft.VisualStudio.Component.VC.Llvm.Clang (C++Compiler Clang for Windows (version8.0.1))
  • Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset (C++ Clang-cl for v142 Build Tools (x64/x86))

Update/Add RVM

Tool information

  • Tool name: RVM
  • Add or update? Add
  • Desired version: latest
  • Approximate size:
  • If this is an add request:
    • Brief description of tool: install/switch between Ruby versions, auto-installs & uses the ruby version as specified in a project’s .ruby-version file
    • URL for tool's homepage: https://rvm.io

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Can this tool be installed during the build?

Yes, but not easily. See https://github.community/t5/GitHub-Actions/How-to-share-shell-profile-between-steps-or-how-to-use-nvm-rvm/td-p/33185

Are you willing to submit a PR?

Ruby, Windows, MSYS2

I'm still on the 'wait list' for Actions, so I haven't been able to look into it seriously.

To fully support Ruby on Windows, it would certainly be helpful to have the MSYS2 build system installed, along with access to the packages used to build Ruby. Restricting Ruby to 2.4 and later, I believe all the packages are shared, with the exception of OpenSSL.

Ruby 2.4 currently uses OpenSSL 1.0.2, Ruby 2.5 and later use 1.1.1. This is due to the std-lib version of Ruby OpenSSL being used (2.0.9 for 2.4, 2.1.2 for 2.5 and later).

Otherwise, the only package commonly used that isn't repo specific would be ragel.

libcurl not included in ubuntu-latest software

Describe the bug
This article lists libcurl between the available software for ubuntu-latest, however installing the Patron ruby gem fails with Can't find libcurl or curl/curl.h (RuntimeError).

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Expected behavior
It should be possible to install the patron gem without first installing any other dependency (apart from bundler).

Actual behavior
Installation of Patron ruby gem fails with Can't find libcurl or curl/curl.h (RuntimeError).
Adding sudo apt-get install libcurl4-openssl-dev to the step fixes the issue, but it should not be necessary.

Workflow job:

  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        ruby: [2.3.x, 2.4.x, 2.5.x, 2.6.x]
    steps:
    - uses: actions/checkout@v1
    - name: Install dependencies
      run: |
        sudo apt-get install libcurl4-openssl-dev
    - name: Set up Ruby
      uses: actions/setup-ruby@v1
      with:
        ruby-version: ${{ matrix.ruby }}
    - name: Build
      run: |
        gem install bundler
        bundle install --jobs 4 --retry 3

Gemfile:

# frozen_string_literal: true

source 'https://rubygems.org'

group :test do
  gem 'patron', '>= 0.4.2'
end

Update/Add Chrome and web drivers on macOS

Chrome is available on Linux and Windows, for absent from macOS. It'd be nice if it was available on all.

It's not complicated to add ourselves, but it adds more noise to the workflow file (I have a growing list of things like this that just set up one tool on one OS).

      - name: Setup Chrome
        if: matrix.os == 'macOS-latest'
        run: brew cask install google-chrome

Update .NET Core SDK to 3.0.100

Tool information

  • Tool name: .NET Core SDK
  • Add or update? Update
  • Desired version: 3.0.100
  • Approximate size: 150mb

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Can this tool be installed during the build?
Yes using chocolatey and the other package managers it is possible to install it during build time. However, it takes ~3 min to do so and creates unnecessary traffic.

Are you willing to submit a PR?
Sure

Update/Add VulkanSDK

Tool information

  • Tool name: LunarG Vulkan SDK
  • Add or update? Add
  • Desired version: Latest (currently) 1.1.121
  • Approximate size: 2 GB installled (on windows)
  • If this is an add request:
    • Brief description of tool: Headers and libraries required for loading and accessing Vulkan functionality from a C/C++ based application. Also includes a suite of tools for SPIRV work
    • URL for tool's homepage: https://vulkan.lunarg.com/

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Note that the Ubuntu versions can probably be dealt with via a simple apt-get, but the Mac and Windows environments require running an interactive installer.

Can this tool be installed during the build?
Uncertain. It's possible that the installer has an unattended mode that can be used but I've never tried to do so. Some components included in the SDK (such as the SPIRV tooling) can be acquired via other means, such as using vcpkg to install the spirv-tools library. However, it's worth noting that the vcpkg port for Vulkan specifically says

Due to the complexity involved, this package doesn't install the Vulkan SDK.

It instead verifies that Vulkan is installed.

Other packages can depend on this package to declare a dependency on Vulkan.

Indicating that building the VulkanSDK from source is extremely non-trivial

Are you willing to submit a PR?
I'm uncertain what a PR could accomplish in this area, since the installation of the SDK is typically a manual process. But sure, I'll submit a PR if someone can provide guidance on a mechanism and within my ability to fix.

Update/Add Visual Studio Build Tools 2017

Tool information

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Can this tool be installed during the build?
As far as I know, no.

Are you willing to submit a PR?
I have 0 clues what I'm doing as is so, unfortunately no.

Put MSBuild on the PATH

Describe the bug

Can you put C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild on the PATH please?

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Add Hub

Tool information

  • Tool name: Hub
  • Add or update? Add
  • Desired version: 2.12.8 (latest)
  • Approximate size: 9.5 MB
  • If this is an add request:
    • Brief description of tool: git wrapper that extends extra features with GitHub (like creating GitHub pull requests)
    • URL for tool's homepage: https://github.com/github/hub

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Can this tool be installed during the build?
Yes, can be downloaded and installed from the github page

Are you willing to submit a PR?
Yes

Update kernel version on ubuntu 18.04 images

Describe the bug
The kernel in the Ubuntu 18.04 images suffers from a kernel bug that prevents .NET Core from running in a container.

It seems that subsequent updates may have fixed this.

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Expected behavior
.NET Core containers run correctly

Actual behavior
.NET Core container runs fail with "The FileName property should not be a directory unless UseShellExecute is set"

See https://github.community/t5/GitHub-Actions/Docker-build-failure-on-Ubuntu-18-04-host/m-p/33224#M1423

Update/Add nvm

Tool information

  • Tool name: nvm
  • Add or update? Add
  • Desired version: latest
  • Approximate size:
  • If this is an add request:
    • Brief description of tool: install/switch between Node.js versions, auto-installs & uses the node version as specified in a project’s .nvmrc file
    • URL for tool's homepage: https://github.com/nvm-sh/nvm

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

(Already installed one macOS virtual env)

Can this tool be installed during the build?

Yes, but not easily. See https://github.community/t5/GitHub-Actions/How-to-share-shell-profile-between-steps-or-how-to-use-nvm-rvm/td-p/33185

Are you willing to submit a PR?

Add hub

Tool information

  • Tool name: hub
  • Add or update? Add
  • Desired version: latest
  • Approximate size: 5MB
  • If this is an add request:
    • Brief description of tool: A command-line tool that makes git easier to use with GitHub.
    • URL for tool's homepage: https://github.com/github/hub

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Can this tool be installed during the build?
Just download a binary file. It will take less than a few seconds.

Are you willing to submit a PR?

Ruby versions aren't stable

I'm trying to set up Github Actions as our CI solution but ran into an issue when I tried to specify the Ruby version as 2.6.2. After looking through other issues on here I found actions/setup-ruby#8 and from that discovered that when 2.6.3 was released 2.6.2 was dropped and that the recommendation was to

If this is to be usable for CI then I need to be able to test against the same Ruby version that my app uses in production. With the current way Ruby versions are managed by this project it seems like unless I'm using a very specific Ruby version and upgrading the version I use in prod to stay in sync. Is Github Actions not intended for use as a CI solution or is there a better way to test against a particular Ruby version?

Add Terragrunt

Tool information

  • Tool name: Terragrunt
  • Add or update? Add
  • Desired version: latest
  • Approximate size: ~28MB
  • If this is an add request:
    • Brief description of tool: Terragrunt is a thin wrapper for Terraform that provides extra tools for working with multiple Terraform modules.
    • URL for tool's homepage: https://github.com/gruntwork-io/terragrunt

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Can this tool be installed during the build?
Yes, Include appropriate binary from github.

Are you willing to submit a PR?
I am willing to attempt it.

Mono 6 not available on macOS 10.14

Describe the bug
From reading this post, one could assume that both macOS-14.04 and macOS-latest virtual environments have been updated to Mono 6.0 (among other things): https://github.blog/changelog/2019-10-04-github-actions-macos-virtual-environment-updates/

This doesn't seem to be the case, as both of these virtual environments are still on Mono 5.x (not to mention older versions of Xamarin, msbuild etc.).
I'm assuming this is either a bug, or a really slow rollout, but in either case I'd appreciate it if you could let me know if/when this will be fixed, as I desperately need an up-to-date environments, so my builds don't break. :)

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Expected behavior
Virtual environment has Mono 6.

Actual behavior
Has Mono 5

Update/Add postgresql-client

Tool information

  • Tool name: postgresql-client
  • Add or update? add
  • Desired version: latest
  • Approximate size: Package size: 913 kB | Installed size: 3128 kB
  • If this is an add request:

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Can this tool be installed during the build?

  • Ubuntu: apt-get. Takes about 1 minute.
  • Mac: brew install libpq (this fixes also #12)

Are you willing to submit a PR?
Sure, but where are the sources?

Add libpq-dev

Tool information

  • Tool name: libpq-dev
  • Add or update? add
  • Desired version: whatever is latest
  • Approximate size:
  • If this is an add request:
    • Brief description of tool: libpq-dev is a C library for interfacing with Postgres; it is commonly needed for Ruby/Rails environments that create and interact with a database as part of test suites
    • URL for tool's homepage: https://www.postgresql.org/docs/9.5/libpq.html

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Can this tool be installed during the build?
Current workaround is to install manually via apt-get -- this adds 1-2 minutes to the workflow time and has to be repeated for every build

Add chrome webdriver to Ubuntu

Tool information

  • Tool name: Chrome webdriver
  • Add or update? add
  • Desired version: whatever is latest
  • Approximate size:
  • If this is an add request:
    • Brief description of tool: ChromeDriver is a separate executable that Selenium WebDriver uses to control Chrome. It is commonly used as part of browser automation/system tests
    • URL for tool's homepage: https://chromedriver.chromium.org/

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Can this tool be installed during the build?
Currently working around this limitation with a build step that does:

sudo apt-get -yqq install chromium-chromedriver

Currently this steps takes ~2 minutes and must be run on every build that will run browser tests. :(

Device or resource busy when building images using buildkit

Describe the bug
Getting the following error when building docker images using DOCEKR_BUILDKIT: 1 env variable. This is the error we're getting:

error creating overlay mount to /var/lib/docker/overlay2/g4qhyt5fquj0qo1a3jeywbyo8/merged: device or resource busy

Seems to be related to this moby issue which was fixed in the last version of docker released a week ago: docker/for-linux#711

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Expected behavior
Image to be built without errors.

Actual behavior
Build any docker image using multi-stage builds and buildkit.

Add SFDX (Salesforce CLI)

Tool information

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Can this tool be installed during the build?
Yes, here's how:

Method 1:

  • (this step is just for neatness in this add request)
    $ export CLIURL=https://developer.salesforce.com/media/salesforce-cli/sfdx-linux-amd64.tar.xz

  • Create sfdx directory
    $ mkdir sfdx

  • Install Salesforce CLI
    $ wget -qO- $CLIURL | tar xJ -C sfdx --strip-components 1
    $ ./sfdx/install
    $ export PATH=./sfdx/$(pwd):$PATH

  • verify install and stdout version information
    $ sfdx --version
    or
    $ sfdx force

Method 2:

  • (npm required)
    $ npm install sfdx-cli --global

Are you willing to submit a PR?
Sure

:-)

Add NuGet package manager

Tool information

  • Tool name: NuGet CLI
  • Add or update? Add
  • Desired version: Latest
  • Approximate size: 5MB
  • If this is an add request:
    • Brief description of tool: NuGet is a package manager comes with Visual Studio (as a extension/library).
    • URL for tool's homepage: https://www.nuget.org/

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Can this tool be installed during the build?
The requested version is a standalone executable, no installation required.

Are you willing to submit a PR?
Yes.

Update/Add Mysql 8

Tool information

  • Tool name: Mysql
  • Add or update? update
  • Desired version: 8.0
  • Approximate size:
  • If this is an add request:

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Can this tool be installed during the build?
yes, minutes

Are you willing to submit a PR?
maybe

Boost version is not the default one from the OS

Describe the bug
I have an issue concerning the default version of Boost for instance provided with 16.04 and 18.04. Why to not use the one provided by the Ubuntu releases?

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Inconsistent drive letter case for Windows

Describe the bug
Lately Windows environment has random case drive letter for partition D:. Sometime it's D:\, and sometime it's d:\. In the same logs I see that Node.js installed on partition C: all the time (it's uppercased). This drive letter case difference makes our tests fail. Because Node.js for some reason always use uppercase drive letter in it's core modules.

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Not sure which one, we use windows-latest.

Expected behavior
Expecting that drive letter always would be uppercased. E. g. D:.

Actual behavior
I can't spot any pattern when this happen. If our build failed, I could restart it n times and it would be still failing, but on n + 1 time it would succeed.

Here's our workflow: https://github.com/stylelint/stylelint/blob/e8bf1a1e47e02100c268bd903ab1e06195a41e8e/.github/workflows/nodejs.yml#L37-L62

Successful run, with drive letter D:: https://github.com/stylelint/stylelint/runs/253213464 for this commit stylelint/stylelint@20a7954

Failed run, with drive letter d:: https://github.com/stylelint/stylelint/runs/253528783 for this commit stylelint/stylelint@febfbb6

It's a two sequential commits 5 hours apart. Test fails because path Node.js provides (always uppercase drive letter) doesn't match real drive letter (sometimes lowercase).

Add docker and docker-compose to macOS

Tool information

  • Tool name: Docker and docker compose
  • Add or update? Add
  • Desired version:
  • Approximate size:
  • If this is an add request:

Virtual environments affected

  • macOS 10.15
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Already exists on the Windows and Linux environments.

Can this tool be installed during the build?

Are you willing to submit a PR?

Ruby 2.6.4 support

Essentially the same problem as actions/setup-ruby#8.

Since 2.6.4 is a release for security reasons everyone should be able update ASAP, which gives the topic a certain urgency.

Has anyone found a way to install a specific ruby version manually?

Thanks in advance,
Jo

Update/Add python3.8

Tool information

  • Tool name: python
  • Add or update? Add
  • Desired version: 3.8, no dev needed since released :)
  • Approximate size:
    Virtual environments affected
  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Can this tool be installed during the build?
I guess so

Are you willing to submit a PR?
If you are willing to share code lol

apt-get update ubuntu:18.04 has broken packages

Describe the bug

When executing apt-get upgrade --no-install-recommends -y --force-yes in my build, it appears to fail trying to upgrade the php7 packages...

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Expected behavior

apt-get upgrade --no-install-recommends -y --force-yes should succeed to upgrade existing packages.

Actual behavior

apt-get upgrade ... fails with the follow messages:

Unsafe symlinks encountered in /run/php, refusing.
Job for php7.3-fpm.service failed because the control process exited with error code.
See "systemctl status php7.3-fpm.service" and "journalctl -xe" for details.
invoke-rc.d: initscript php7.3-fpm, action "restart" failed.
● php7.3-fpm.service - The PHP 7.3 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.3-fpm.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Fri 2019-10-11 06:12:09 UTC; 7ms ago
     Docs: man:php-fpm7.3(8)
  Process: 13234 ExecStart=/usr/sbin/php-fpm7.3 --nodaemonize --fpm-config /etc/php/7.3/fpm/php-fpm.conf (code=exited, status=78)
 Main PID: 13234 (code=exited, status=78)

https://github.com/unhookd/polly/runs/256158098

sha256sum -c in Windows fails without .gitattributes

Description
In a runs-on: windows-latest job running a shell: bash step, the sha256sum -c command fails because of an unexpected CR byte in the file name:

sha256sum: 'libusb-1.0.22.7z'$'\r': No such file or directory

Setting text eol=lf for the checksum file in .gitattributes fixes the issue.

Maybe this isn't really a bug (it would arguably be a bug in sha256sum if anything), but at least it is surprising behaviour.

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2 (probably this one too, haven't tested)
  • Windows Server 2019

Expected behavior
The sha256sum command, when run in a bash shell, behaves as it would in Linux/MacOS, and successfully verifies the checksum of the file.

Actual behavior
The checksum file is by default checked out with CRLF line endings, and sha256sum fails to find the file to be checked because of the trailing CR in the file name.

For reproduction, see this build and the github-actions-windows-sha256sum-bug-report branch in YubiKey Manager (these links will probably die soon)

Ubuntu-16.04 - Ruby is built with OpenSSL 1.0.2, system files are 1.1.1

On Ubuntu-16.04, when building extension gems that use OpenSSL, they are building with OpenSSL 1.1.1, but the Rubies are using 1.0.2.

I haven't seen this on Travis, and it may create some testing confusion. It's not uncommon for tests to use Ruby for SSL sockets or net/http for clients. But, one's protocols won't line up (1.0.2 may have SSLv3, 1.1.1 has TLSv1.3, etc)...

Otherwise, on Ubuntu-18.04, everything is 1.1.1, on macOS, everything is 1.0.2...

JFYI, on Travis macOS, the OpenSSL version used is dependent on the XCode version, and both 1.0.2 and 1.1.1 are available...

Support for ChromeDriver

Is there an equivalent to circleci/node:jessie-browsers for GitHub Actions?

I'm trying to test an Electron app but Chrome isn't available.

unknown error: Chrome failed to start: exited abnormally
      (unknown error: DevToolsActivePort file doesn't exist)
      (The process started from chrome location /home/runner/work/.../node_modules/spectron/lib/launcher.js is no longer running, so ChromeDriver is assuming that Chrome has crashed.)

I imagine there are other use case too for integration tests on any front-end app.

Add PHP PECL

Tool information

  • Tool name: PECL
  • Add or update? Add
  • Desired version: N/A
  • Approximate size: N/A
  • If this is an add request:
    • Brief description of tool: PECL is a repository for PHP Extensions, providing a directory of all known extensions and hosting facilities for downloading and development of PHP extensions.
    • URL for tool's homepage: https://pecl.php.net/

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Can this tool be installed during the build?
if my memory didn't fail me, by using sudo apt-get install php-pear

Are you willing to submit a PR?
No

Add Rust to MacOS

Tool information

  • Tool name: Rust
  • Add or update? Add
  • Desired version: Stable (currently 1.38.0)
  • Approximate size: Similar to Ubuntu, given that they're both Unix. rustc by itself is 11M on my Ubuntu system.
  • If this is an add request:
    • Brief description of tool: Rust language. It's already present on Ubuntu and Windows virtual envs.
    • URL for tool's homepage: https://rust-lang.org

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Can this tool be installed during the build?
Yes, though it adds a couple minutes to the build.

Are you willing to submit a PR?

If someone can show me what would need to be changed, certainly.


On a related note, it would be great if various stable versions were also provided!

Add `ext-intl` for PHP by default

Tool information

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Can this tool be installed during the build?
Yes by using sudo apt install php{$php-version}-intl

Are you willing to submit a PR?
Maybe

Better vcpkg support

The vcpkg binary exists on the target environments, but it would be much more useful if the YAML could specify a specific vcpkg commit, and a set of packages required for a given build. If the server side could recognize and cache this state, it could potentially shave an enormous amount of time off of individual builds.

Tool information

  • Tool name: vcpkg
  • Add or update? update (new functionality)

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Can this tool be installed during the build?
Yes

Are you willing to submit a PR?
Once caching support exists in the GA syntax, yes, I would be willing to write a tool like this.

Virtual environment request: Arch Linux

Environment information
I would like to be able to request Arch Linux as a build platform because honestly Ubuntu is sometimes horribly failing to provide a clean build environment (outdated compiler, g++-9 wont install due to a package conflict rendering ubuntu unusable for one of my projects). Arch shouldn't have such issues and is a very small OS, there are exisiting VM images to start of with. It would be nice to have an AUR helper (namely yay) installed in case AUR packages are required.

Are you willing to submit a PR?
Yes

Add Swift

Tool information

  • Tool name: Swift
  • Add or update? Add
  • Desired version:
  • Approximate size:
  • If this is an add request:

Virtual environments affected

  • macOS 10.14
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016 R2
  • Windows Server 2019

Can this tool be installed during the build?

Are you willing to submit a PR?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.