Skip to content

Speed up tests for CI #10

Speed up tests for CI

Speed up tests for CI #10

Workflow file for this run

name: Tests
concurrency:
group: "${{ github.workflow }}-${{ github.sha }}"
cancel-in-progress: true
on:
workflow_dispatch:
push:
branches:
- main
pull_request:
schedule:
- cron: "30 4 * * 4"
env:
RUBYOPT: "--enable-frozen-string-literal --debug-frozen-string-literal"
jobs:
build-cruby-gem:
runs-on: "ubuntu-latest"
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.3"
bundler-cache: true
- run: bundle exec rake gem
- uses: actions/upload-artifact@v4
with:
name: cruby-gem
path: pkg/*.gem
precompile-aarch64-linux:
uses: ./.github/workflows/precompile-gem.yml
with:
platform: aarch64-linux
precompile-arm-linux:
uses: ./.github/workflows/precompile-gem.yml
with:
platform: arm-linux
precompile-x86-linux:
uses: ./.github/workflows/precompile-gem.yml
with:
platform: x86-linux
precompile-x86_64-linux:
uses: ./.github/workflows/precompile-gem.yml
with:
platform: x86_64-linux
precompile-arm64-darwin:
uses: ./.github/workflows/precompile-gem.yml
with:
platform: arm64-darwin
precompile-x86_64-darwin:
uses: ./.github/workflows/precompile-gem.yml
with:
platform: x86_64-darwin
precompile-x64-mingw-ucrt:
uses: ./.github/workflows/precompile-gem.yml
with:
platform: x64-mingw-ucrt
precompile-x64-mingw32:
uses: ./.github/workflows/precompile-gem.yml
with:
platform: x64-mingw32
precompile-x86-mingw32:
uses: ./.github/workflows/precompile-gem.yml
with:
platform: x86-mingw32
test-ubuntu:
needs: "build-cruby-gem"
strategy:
fail-fast: false
matrix:
ruby: ["2.6", "2.7", "3.0", "3.1", "3.2", "3.3", "3.4"]
runs-on: "ubuntu-latest"
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
- uses: actions/download-artifact@v4
with:
name: cruby-gem
path: pkg
- run: ./scripts/test-gem-install
env:
BUNDLE_PATH: ${{ github.workspace }}/vendor/bundle
test-macos:
needs: "build-cruby-gem"
strategy:
fail-fast: false
matrix:
ruby: ["2.6", "2.7", "3.0", "3.1", "3.2", "3.3", "3.4"]
runs-on: "macos-13"
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
- uses: actions/download-artifact@v4
with:
name: cruby-gem
path: pkg
- run: ./scripts/test-gem-install
env:
BUNDLE_PATH: ${{ github.workspace }}/vendor/bundle
test-windows-2019:
needs: "build-cruby-gem"
strategy:
fail-fast: false
matrix:
ruby: ["2.6", "2.7", "3.0"]
runs-on: "windows-2019"
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
- uses: actions/download-artifact@v4
with:
name: cruby-gem
path: pkg
- run: ./scripts/test-gem-install
shell: bash
env:
BUNDLE_PATH: ${{ github.workspace }}/vendor/bundle
test-windows-2022:
needs: "build-cruby-gem"
strategy:
fail-fast: false
matrix:
ruby: ["3.1", "3.2", "3.3"]
runs-on: "windows-2022"
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
- uses: actions/download-artifact@v4
with:
name: cruby-gem
path: pkg
- run: ./scripts/test-gem-install
shell: bash
env:
BUNDLE_PATH: ${{ github.workspace }}/vendor/bundle
test-freebsd:
needs: "build-cruby-gem"
strategy:
fail-fast: false
runs-on: ubuntu-latest
env:
MAKE: gmake
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: cruby-gem
path: pkg
- uses: vmactions/freebsd-vm@v1
with:
envs: MAKE
usesh: true
copyback: false
prepare: pkg install -y ruby devel/ruby-gems sysutils/rubygem-bundler shells/bash devel/gmake
run: ./scripts/test-gem-install
test-precompiled-aarch64-linux:
needs: "precompile-aarch64-linux"
strategy:
fail-fast: false
matrix:
ruby: ["2.6", "2.7", "3.0", "3.1", "3.2", "3.3"]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: cruby-aarch64-linux-gem
path: pkg
- name: Enable execution of multi-architecture containers by QEMU
run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
- run: |
docker run --rm -v "$(pwd):/argon2id" -w /argon2id \
--platform=linux/arm64/v8 \
ruby:${{ matrix.ruby }} \
./scripts/test-gem-install
test-precompiled-arm-linux:
needs: "precompile-arm-linux"
strategy:
fail-fast: false
matrix:
ruby: ["2.6", "2.7", "3.0", "3.1", "3.2", "3.3"]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: cruby-arm-linux-gem
path: pkg
- name: enable execution of multi-architecture containers by qemu
run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
- run: |
docker run --rm -v "$(pwd):/argon2id" -w /argon2id \
--platform=linux/arm/v7 \
ruby:${{ matrix.ruby }} \
./scripts/test-gem-install
test-precompiled-x86-linux:
needs: "precompile-x86-linux"
strategy:
fail-fast: false
matrix:
ruby: ["2.6", "2.7", "3.0", "3.1", "3.2", "3.3"]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: cruby-x86-linux-gem
path: pkg
- name: Enable execution of multi-architecture containers by QEMU
run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
- run: |
docker run --rm -v "$(pwd):/argon2id" -w /argon2id \
--platform=linux/386 \
ruby:${{ matrix.ruby }} \
./scripts/test-gem-install
test-precompiled-x86_64-linux:
needs: "precompile-x86_64-linux"
strategy:
fail-fast: false
matrix:
ruby: ["2.6", "2.7", "3.0", "3.1", "3.2", "3.3"]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "${{ matrix.ruby }}"
bundler-cache: true
- uses: actions/download-artifact@v4
with:
name: cruby-x86_64-linux-gem
path: pkg
- run: ./scripts/test-gem-install
env:
BUNDLE_PATH: ${{ github.workspace }}/vendor/bundle
test-precompiled-arm64-darwin:
needs: "precompile-arm64-darwin"
strategy:
fail-fast: false
matrix:
ruby: ["2.6", "2.7", "3.0", "3.1", "3.2", "3.3"]
runs-on: macos-14
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "${{ matrix.ruby }}"
bundler-cache: true
- uses: actions/download-artifact@v4
with:
name: cruby-arm64-darwin-gem
path: pkg
- run: ./scripts/test-gem-install
env:
BUNDLE_PATH: ${{ github.workspace }}/vendor/bundle
test-precompiled-x86_64-darwin:
needs: "precompile-x86_64-darwin"
strategy:
fail-fast: false
matrix:
ruby: ["2.6", "2.7", "3.0", "3.1", "3.2", "3.3"]
runs-on: macos-13
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "${{ matrix.ruby }}"
bundler-cache: true
- uses: actions/download-artifact@v4
with:
name: cruby-x86_64-darwin-gem
path: pkg
- run: ./scripts/test-gem-install
env:
BUNDLE_PATH: ${{ github.workspace }}/vendor/bundle
test-precompiled-x64-mingw-ucrt:
needs: "precompile-x64-mingw-ucrt"
strategy:
fail-fast: false
matrix:
ruby: ["3.1", "3.2", "3.3"]
runs-on: windows-2022
steps:
- uses: actions/checkout@v4
- uses: MSP-Greg/setup-ruby-pkgs@v1
with:
ruby-version: "${{ matrix.ruby }}"
bundler-cache: true
- uses: actions/download-artifact@v4
with:
name: cruby-x64-mingw-ucrt-gem
path: pkg
- run: ./scripts/test-gem-install
shell: bash
env:
BUNDLE_PATH: ${{ github.workspace }}/vendor/bundle
test-precompiled-x64-mingw32:
needs: "precompile-x64-mingw32"
strategy:
fail-fast: false
matrix:
ruby: ["2.6", "2.7", "3.0"]
runs-on: windows-2019
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "${{ matrix.ruby }}"
bundler-cache: true
- uses: actions/download-artifact@v4
with:
name: cruby-x64-mingw32-gem
path: pkg
- run: ./scripts/test-gem-install
shell: bash
env:
BUNDLE_PATH: ${{ github.workspace }}/vendor/bundle
test-precompiled-x86_64-alpine:
needs: "precompile-x86_64-linux"
strategy:
fail-fast: false
matrix:
ruby: ["2.6", "2.7", "3.0", "3.1", "3.2", "3.3"]
runs-on: ubuntu-latest
container:
image: "ruby:${{ matrix.ruby }}-alpine"
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: cruby-x86_64-linux-gem
path: pkg
- run: apk add bash libstdc++ gcompat
- run: ./scripts/test-gem-install
ruby-memcheck:
runs-on: "ubuntu-latest"
env:
BUNDLE_WITH: memcheck
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby-pkgs@v1
with:
ruby-version: "3.3"
apt-get: valgrind
bundler-cache: true
- run: bundle exec rake test:valgrind