Manually compile libargon2 instead of using make #5
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |