Skip to content

Pin action versions in test.yml #817

Pin action versions in test.yml

Pin action versions in test.yml #817

Workflow file for this run

name: Test
on: pull_request
permissions:
contents: read
jobs:
bower:
runs-on: ubuntu-latest
needs: core
steps:
- uses: actions/checkout@v4
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: 18
- name: Install Bower
run: npm install -g bower
- name: Set up Ruby
uses: ruby/setup-ruby@a2bbe5b1b236842c1cb7dd11e8e3b51e0a616acc
with:
bundler-cache: true
- name: Set up fixtures
run: script/source-setup/bower
- name: Run tests
run: script/test bower
bundler:
runs-on: ubuntu-latest
needs: core
strategy:
matrix:
bundler: [ '2.1', '2.2', '2.3', '2.4' ]
steps:
- uses: actions/checkout@v4
- name: Set up Ruby
uses: ruby/setup-ruby@a2bbe5b1b236842c1cb7dd11e8e3b51e0a616acc
with:
bundler: ${{ matrix.bundler }}
bundler-cache: true
- name: Set up fixtures
run: script/source-setup/bundler
- name: Run tests
run: script/test bundler
cabal:
runs-on: ubuntu-latest
needs: core
strategy:
matrix:
ghc: [ '9.0', '9.2', '9.4' ]
steps:
- uses: actions/checkout@v4
- name: Set up Ruby
uses: ruby/setup-ruby@a2bbe5b1b236842c1cb7dd11e8e3b51e0a616acc
with:
bundler-cache: true
- name: Setup Haskell
uses: haskell-actions/setup@dd344bc1cec854a369df8814ce17ef337d6e6170
with:
ghc-version: ${{ matrix.ghc }}
cabal-version: ${{ matrix.cabal }}
- name: cache cabal dependencies
uses: actions/cache@v4
with:
path: |
~/.cabal/packages
~/.cabal/store
key: ${{ runner.os }}-cabal-${{ matrix.ghc }}-${{ hashFiles('**/app.cabal') }}
restore-keys: |
${{ runner.os }}-cabal-
- name: Set up fixtures
run: script/source-setup/cabal
- name: Run tests
run: script/test cabal
cargo:
runs-on: ubuntu-latest
needs: core
steps:
- uses: actions/checkout@v4
- name: Set up Ruby
uses: ruby/setup-ruby@a2bbe5b1b236842c1cb7dd11e8e3b51e0a616acc
with:
bundler-cache: true
- name: Setup Rust toolchain
uses: actions-rs/toolchain@b2417cde72dcf67f306c0ae8e0828a81bf0b189f
with:
toolchain: stable
- name: cache cargo dependencies
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.toml') }}
restore-keys: |
${{ runner.os }}-cargo-
- name: Set up fixtures
run: script/source-setup/cargo
- name: Run tests
run: script/test cargo
cocoapods:
runs-on: ubuntu-latest
needs: core
steps:
- uses: actions/checkout@v4
- name: Set up Ruby
uses: ruby/setup-ruby@a2bbe5b1b236842c1cb7dd11e8e3b51e0a616acc
with:
bundler-cache: true
- name: Set up fixtures
run: script/source-setup/cocoapods
- name: Run tests
run: script/test cocoapods
composer:
runs-on: ubuntu-latest
needs: core
strategy:
matrix:
php: [ '7.4', '8.0' ]
steps:
- uses: actions/checkout@v4
- name: Setup php
uses: nanasess/setup-php@50c1c73e8ab7258f64ab525b05fcac481c0762db
with:
php-version: ${{ matrix.php }}
- name: Set up Ruby
uses: ruby/setup-ruby@a2bbe5b1b236842c1cb7dd11e8e3b51e0a616acc
with:
bundler-cache: true
- name: Set up fixtures
run: script/source-setup/composer
- name: Run tests
run: script/test composer
core:
runs-on: ubuntu-latest
strategy:
matrix:
ruby: [ '3.0', '3.1', '3.2' ]
steps:
- uses: actions/checkout@v4
- name: Set up Ruby
uses: ruby/setup-ruby@a2bbe5b1b236842c1cb7dd11e8e3b51e0a616acc
with:
ruby-version: ${{matrix.ruby}}
bundler-cache: true
- name: Build and lint
run: bundle exec rake rubocop build
- name: Core functionality tests
run: script/test core
dep:
runs-on: ubuntu-latest
needs: core
strategy:
matrix:
go: [ '1.17.x', '1.18.x', '1.19.x' ]
steps:
- uses: actions/checkout@v4
- name: Setup go
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go }}
- name: Set up Ruby
uses: ruby/setup-ruby@a2bbe5b1b236842c1cb7dd11e8e3b51e0a616acc
with:
bundler-cache: true
- name: Set up go dep
run: curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh
- name: Set up fixtures
run: script/source-setup/dep
- name: Run tests
run: script/test dep
go:
runs-on: ubuntu-latest
needs: core
strategy:
matrix:
go: [ '1.17.x', '1.18.x', '1.19.x' ]
steps:
- uses: actions/checkout@v4
- name: Setup go
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go }}
cache: true
cache-dependency-path: test/fixtures/go/src/test/go.sum
- name: Set up Ruby
uses: ruby/setup-ruby@a2bbe5b1b236842c1cb7dd11e8e3b51e0a616acc
with:
bundler-cache: true
- name: Set up fixtures
run: script/source-setup/go
- name: Run tests
run: script/test go
gradle:
runs-on: ubuntu-latest
needs: core
strategy:
matrix:
# TODO: the reporting plugin used to gather data is not yet fully compatible with
# gradle 7, which is needed for compatibility with Java 16. after compatibility issues
# are resolved, update this matrix list with '16'.
# possibly fixed by https://github.com/jk1/Gradle-License-Report/pull/166
java: [ '11' ]
gradle: ['current', '7.6', '6.9.3']
steps:
- uses: actions/checkout@v4
- name: Set up Ruby
uses: ruby/setup-ruby@a2bbe5b1b236842c1cb7dd11e8e3b51e0a616acc
with:
bundler-cache: true
- name: Set up Java
uses: actions/[email protected]
with:
java-version: ${{ matrix.java }}
distribution: adopt
cache: gradle
- name: Setup Gradle
uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1
with:
gradle-version: ${{ matrix.gradle }}
- name: Bootstrap
run: script/bootstrap
- name: Run tests
run: script/test gradle
manifest:
runs-on: ubuntu-latest
needs: core
steps:
- uses: actions/checkout@v4
- name: Set up Ruby
uses: ruby/setup-ruby@a2bbe5b1b236842c1cb7dd11e8e3b51e0a616acc
with:
bundler-cache: true
- name: Run tests
run: script/test manifest
mix:
runs-on: ubuntu-latest
needs: core
strategy:
matrix:
otp: [24.x, 25.x]
elixir: [ 1.13.x, 1.14.x ]
steps:
- uses: actions/checkout@v4
- uses: erlef/setup-beam@5304e04ea2b355f03681464e683d92e3b2f18451
with:
otp-version: ${{matrix.otp}}
elixir-version: ${{matrix.elixir}}
- name: Set up Ruby
uses: ruby/setup-ruby@a2bbe5b1b236842c1cb7dd11e8e3b51e0a616acc
with:
bundler-cache: true
- name: Set up fixtures
run: script/source-setup/mix
- name: Run tests
run: script/test mix
npm:
runs-on: ubuntu-latest
needs: core
strategy:
matrix:
node_version: [ 14, 16, 18 ]
steps:
- uses: actions/checkout@v4
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node_version }}
cache: npm
cache-dependency-path: test/fixtures/npm/package-lock.json
- name: Set up Ruby
uses: ruby/setup-ruby@a2bbe5b1b236842c1cb7dd11e8e3b51e0a616acc
with:
bundler-cache: true
- name: Set up fixtures
run: script/source-setup/npm
- name: Run tests
run: script/test npm
nuget:
runs-on: ubuntu-latest
needs: core
strategy:
matrix:
dotnet: [ '3.1.x', '5.x' ]
steps:
- uses: actions/checkout@v4
- name: Setup dotnet
uses: actions/[email protected]
with:
dotnet-version: ${{ matrix.dotnet }}
- name: Set up Ruby
uses: ruby/setup-ruby@a2bbe5b1b236842c1cb7dd11e8e3b51e0a616acc
with:
bundler-cache: true
- name: Set up fixtures
run: script/source-setup/nuget
- name: Run tests
run: script/test nuget
pip:
runs-on: ubuntu-latest
needs: core
strategy:
matrix:
python: [ '3.8', '3.9', '3.10' ]
steps:
- uses: actions/checkout@v4
- name: Setup python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}
architecture: x64
cache: pip
- name: Set up Ruby
uses: ruby/setup-ruby@a2bbe5b1b236842c1cb7dd11e8e3b51e0a616acc
with:
bundler-cache: true
- name: Install virtualenv
run: pip install virtualenv
- name: Set up fixtures
run: script/source-setup/pip
- name: Run tests
run: script/test pip
pipenv:
runs-on: ubuntu-latest
needs: core
strategy:
matrix:
python: [ '3.8', '3.10', '3.x' ]
steps:
- uses: actions/checkout@v4
- name: Setup python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}
architecture: x64
cache: pipenv
- name: Set up Ruby
uses: ruby/setup-ruby@a2bbe5b1b236842c1cb7dd11e8e3b51e0a616acc
with:
bundler-cache: true
- name: Install pipenv
run: pip install pipenv
- name: Set up fixtures
run: script/source-setup/pipenv
- name: Run tests
run: script/test pipenv
pnpm:
runs-on: ubuntu-latest
needs: core
strategy:
matrix:
pnpm_version: [ 7 ]
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2
name: Install pnpm
id: pnpm-install
with:
version: ${{ matrix.pnpm_version }}
run_install: false
- name: Get pnpm store directory
id: pnpm-cache
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Set up Ruby
uses: ruby/setup-ruby@a2bbe5b1b236842c1cb7dd11e8e3b51e0a616acc
with:
bundler-cache: true
- name: Set up fixtures
run: script/source-setup/pnpm
- name: Run tests
run: script/test pnpm
swift:
runs-on: ubuntu-20.04
needs: core
strategy:
matrix:
swift: [ "5.7", "5.6" ]
steps:
- uses: actions/checkout@v4
- name: Setup Swift
uses: swift-actions/setup-swift@3aed395c5397f62deb91d8fe7af1418a9ae4d16f
with:
swift-version: ${{ matrix.swift }}
- name: Set up Ruby
uses: ruby/setup-ruby@a2bbe5b1b236842c1cb7dd11e8e3b51e0a616acc
with:
bundler-cache: true
- uses: actions/cache@v4
name: cache spm dependencies
with:
path: .build
key: ${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }}
restore-keys: |
${{ runner.os }}-spm-
- name: Set up fixtures
run: script/source-setup/swift
- name: Run tests
run: script/test swift
yarn-v1:
runs-on: ubuntu-latest
needs: core
strategy:
matrix:
# not using 1.0.0 because it doesn't support `yarn list --production`
yarn_version: [ 1.4.0, latest ]
steps:
- uses: actions/checkout@v4
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: 12
cache: yarn
cache-dependency-path: test/fixtures/yarn/v1/yarn.lock
- name: Install Yarn
run: npm install -g yarn@${YARN_VERSION}
env:
YARN_VERSION: ${{ matrix.yarn_version }}
- name: Set up Ruby
uses: ruby/setup-ruby@a2bbe5b1b236842c1cb7dd11e8e3b51e0a616acc
with:
bundler-cache: true
- name: Set up fixtures
run: script/source-setup/yarn/v1
- name: Run tests
run: script/test yarn/v1
yarn-berry:
runs-on: ubuntu-latest
needs: core
steps:
- uses: actions/checkout@v4
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: 12
cache: yarn
cache-dependency-path: test/fixtures/yarn/berry/yarn.lock
- name: Install Yarn
run: npm install -g yarn
- name: Set up Ruby
uses: ruby/setup-ruby@a2bbe5b1b236842c1cb7dd11e8e3b51e0a616acc
with:
bundler-cache: true
- name: Set up fixtures
run: script/source-setup/yarn/berry
- name: Run tests
run: script/test yarn/berry