ci: install matt plugin #276
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: Build | |
on: | |
push: | |
pull_request: | |
workflow_dispatch: | |
jobs: | |
alpine: | |
timeout-minutes: 10 | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
language: [ | |
haskell, | |
ada, | |
perl, | |
php, | |
python, | |
ruby, | |
raku, | |
racket, | |
julia, | |
deno, | |
csharp, | |
zig, | |
dart, | |
c, | |
lua, | |
nim, | |
go, | |
go_purego, | |
js, | |
java, | |
dotnet | |
# swift, | |
# scala_native, | |
# scala, | |
# visual_basic, | |
# kotlin, // TODO | |
# ocaml, | |
# java_panama | |
] | |
# arch: [amd64] | |
arch: [arm64, amd64] | |
exclude: | |
- language: julia | |
arch: arm64 | |
- language: csharp | |
arch: arm64 | |
- language: dotnet | |
arch: arm64 | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
if: matrix.arch != 'amd64' | |
- run: docker run --platform=linux/${{ matrix.arch }} --rm -v $PWD:/home alpine sh -c 'apk add --no-cache make bash curl && cd /home && make get_pact_ffi' | |
- run: make alpine_${{ matrix.language }} | |
env: | |
DOCKER_DEFAULT_PLATFORM: linux/${{ matrix.arch }} | |
ruby: | |
timeout-minutes: 10 | |
# runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-12, macos-14] | |
fail-fast: false | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }} | |
steps: | |
- uses: actions/checkout@v3 | |
- if: runner.os == 'Windows' | |
run: rm 'C:\Windows\System32\bash.exe' | |
name: 'remove wsl bash' | |
- uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: "2.7.6" | |
- run: make get_pact_ffi | |
- run: ls | |
- run: make ruby_install_deps | |
- run: make ruby | |
julia: | |
timeout-minutes: 10 | |
# runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-12, macos-14] | |
fail-fast: false | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }} | |
steps: | |
- uses: actions/checkout@v3 | |
- if: runner.os == 'Windows' | |
run: rm 'C:\Windows\System32\bash.exe' | |
name: 'remove wsl bash' | |
- uses: julia-actions/setup-julia@v1 | |
with: | |
version: "v1.8.3" | |
- run: make get_pact_ffi | |
- run: ls | |
- run: make julia | |
raku: | |
timeout-minutes: 10 | |
# runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-12, macos-14] | |
fail-fast: false | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }} | |
steps: | |
- uses: actions/checkout@v3 | |
- if: runner.os == 'Windows' | |
run: rm 'C:\Windows\System32\bash.exe' | |
name: 'remove wsl bash' | |
- uses: Raku/setup-raku@v1 | |
if: runner.os != 'MacOS' | |
- run: brew install rakudo | |
if: runner.os == 'MacOS' | |
- run: make get_pact_ffi | |
- run: ls | |
- run: make raku | |
perl: | |
timeout-minutes: 10 | |
# runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-12, macos-14] | |
# os: [ubuntu-latest, windows-latest, macos-12, macos-14] # TODO: Windows broken | |
fail-fast: false | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }} | |
steps: | |
- uses: actions/checkout@v3 | |
- if: runner.os == 'Windows' | |
run: rm 'C:\Windows\System32\bash.exe' | |
name: 'remove wsl bash' | |
- if: runner.os == 'macOS' | |
run: brew install protobuf | |
- if: runner.os == 'Windows' | |
name: Choco install protoc | |
uses: crazy-max/ghaction-chocolatey@v2 | |
with: | |
args: install protoc | |
- uses: shogo82148/actions-setup-perl@v1 | |
with: | |
perl-version: "5.32" | |
install-modules-with: cpanm | |
distribution: strawberry | |
- if: runner.os == 'Windows' | |
run: | | |
rm -rf /usr/bin/perl.exe | |
- run: cpanm FFI::Platypus | |
- run: make get_pact_ffi | |
# - run: make get_pact_plugins | |
- run: ls | |
- run: make perl | |
haskell: | |
timeout-minutes: 10 | |
# runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-12, macos-14] | |
fail-fast: false | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }} | |
steps: | |
- uses: actions/checkout@v3 | |
- if: runner.os == 'Windows' | |
run: rm 'C:\Windows\System32\bash.exe' | |
name: 'remove wsl bash' | |
- uses: haskell-actions/setup@v2 | |
- run: make get_pact_ffi | |
- run: ls | |
- run: make haskell | |
python: | |
timeout-minutes: 10 | |
# runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-12, macos-14] | |
fail-fast: false | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }} | |
steps: | |
- uses: actions/checkout@v3 | |
- if: runner.os == 'Windows' | |
run: rm 'C:\Windows\System32\bash.exe' | |
name: 'remove wsl bash' | |
- if: runner.os == 'macOS' | |
run: brew install protobuf | |
- if: runner.os == 'Windows' | |
name: Choco install protoc | |
uses: crazy-max/ghaction-chocolatey@v2 | |
with: | |
args: install protoc | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: "3.10" | |
- run: make get_pact_ffi | |
# - run: make get_pact_plugins | |
- run: ls | |
- run: make python_install_deps | |
- run: make python | |
php: | |
timeout-minutes: 10 | |
# runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-12, macos-14] | |
fail-fast: false | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }} | |
steps: | |
- uses: actions/checkout@v3 | |
- if: runner.os == 'Windows' | |
run: rm 'C:\Windows\System32\bash.exe' | |
name: 'remove wsl bash' | |
- if: matrix.os == 'macos-14' | |
name: Install Protobuf | |
uses: arduino/setup-protoc@v3 | |
with: | |
version: "25.x" | |
repo-token: ${{ secrets.GITHUB_TOKEN }} | |
- if: runner.os == 'Windows' | |
name: Choco install protoc | |
uses: crazy-max/ghaction-chocolatey@v2 | |
with: | |
args: install protoc | |
- uses: shivammathur/setup-php@v2 | |
with: | |
php-version: 8.1 | |
extensions: ffi | |
if: matrix.os != 'macos-14' | |
- run: brew install php | |
if: matrix.os == 'macos-14' | |
- run: make get_pact_ffi | |
# - run: make get_pact_plugins | |
- run: ls | |
- run: make php | |
deno: | |
timeout-minutes: 10 | |
# runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-12, macos-14] | |
fail-fast: false | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }} | |
steps: | |
- uses: actions/checkout@v3 | |
- if: runner.os == 'Windows' | |
run: rm 'C:\Windows\System32\bash.exe' | |
name: 'remove wsl bash' | |
- if: runner.os == 'macOS' | |
run: brew install protobuf | |
- if: runner.os == 'Windows' | |
name: Choco install protoc | |
uses: crazy-max/ghaction-chocolatey@v2 | |
with: | |
args: install protoc | |
- uses: denoland/setup-deno@v1 | |
with: | |
deno-version: v1.x | |
- run: make get_pact_ffi | |
# - run: make get_pact_plugins | |
- run: make deno | |
bun: | |
timeout-minutes: 10 | |
# runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
# No bun on windows | |
# os: [ubuntu-latest, windows-latest, macos-12, macos-14] | |
os: [ubuntu-latest, macos-12, macos-14] | |
fail-fast: false | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }} | |
steps: | |
- uses: actions/checkout@v3 | |
- if: runner.os == 'macOS' | |
run: brew install protobuf | |
- run: | | |
curl -fsSL https://bun.sh/install | bash | |
echo "BUN_INSTALL=$HOME/.bun" >> $GITHUB_ENV | |
echo "$HOME/.bun/bin" >> $GITHUB_PATH | |
- run: make get_pact_ffi | |
# - run: make get_pact_plugins | |
- run: make bun | |
zig: | |
timeout-minutes: 10 | |
# runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
os: [macos-12, macos-14] | |
# os: [ubuntu-latest, windows-latest, macos-12, macos-14] | |
fail-fast: false | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }} | |
steps: | |
- uses: actions/checkout@v3 | |
- if: runner.os == 'Windows' | |
run: rm 'C:\Windows\System32\bash.exe' | |
name: 'remove wsl bash' | |
- uses: goto-bus-stop/setup-zig@v2 | |
if: matrix.os != 'macos-14' | |
- run: brew install zig | |
if: matrix.os == 'macos-14' | |
- run: make get_pact_ffi | |
- run: make zig | |
dart: | |
timeout-minutes: 10 | |
# runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-12, macos-14] | |
fail-fast: false | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }} | |
steps: | |
- uses: actions/checkout@v3 | |
- if: runner.os == 'Windows' | |
run: rm 'C:\Windows\System32\bash.exe' | |
name: 'remove wsl bash' | |
- uses: dart-lang/setup-dart@v1 | |
- run: make get_pact_ffi | |
- run: dart pub get | |
working-directory: dart | |
- run: make dart | |
c: | |
timeout-minutes: 10 | |
# runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-12, macos-14] | |
fail-fast: false | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }} | |
steps: | |
- uses: actions/checkout@v3 | |
- if: runner.os == 'Windows' | |
run: rm 'C:\Windows\System32\bash.exe' | |
name: 'remove wsl bash' | |
- run: make get_pact_ffi | |
- run: make c | |
swift: | |
timeout-minutes: 10 | |
# runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-12, macos-14] | |
# os: [ubuntu-latest, windows-latest, macos-12, macos-14] | |
fail-fast: false | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }} | |
steps: | |
- uses: actions/checkout@v3 | |
- if: runner.os == 'Windows' | |
run: rm 'C:\Windows\System32\bash.exe' | |
name: 'remove wsl bash' | |
- uses: compnerd/gha-setup-swift@main | |
if: runner.os == 'Windows' | |
with: | |
branch: swift-5.7.1-release | |
tag: 5.7.1-RELEASE | |
- if: matrix.os == 'macos-14' | |
name: Install Protobuf | |
uses: arduino/setup-protoc@v3 | |
with: | |
version: "25.x" | |
repo-token: ${{ secrets.GITHUB_TOKEN }} | |
- run: make get_pact_ffi | |
# - run: make get_pact_plugins | |
- run: make swift | |
lua: | |
timeout-minutes: 10 | |
# runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-12, macos-14] | |
# os: [ubuntu-latest, windows-latest, macos-12, macos-14] # TODO: Windows broken | |
fail-fast: false | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }} | |
steps: | |
- uses: actions/checkout@v3 | |
- if: runner.os == 'Windows' | |
run: rm 'C:\Windows\System32\bash.exe' | |
name: 'remove wsl bash' | |
- uses: MunifTanjim/luver-action@v1 | |
if: runner.os == 'Linux' | |
with: | |
lua_versions: 5.1.5 5.4.3 | |
luajit_versions: 5.1.5:2.1.0-beta3 | |
luarocks_versions: 5.1.5:3.7.0 5.4.3:3.8.0 | |
- run: brew install lua luajit luarocks | |
if: runner.os == 'macOS' | |
- uses: leafo/[email protected] | |
if: runner.os == 'Windows' | |
with: | |
luaVersion: "luajit-2.1.0-beta3" | |
continue-on-error: true | |
- uses: crazy-max/ghaction-chocolatey@v2 | |
if: runner.os == 'Windows' | |
with: | |
args: install lua luarocks | |
- run: | | |
ls "C:\Program Files (x86)\Lua\5.1" | |
"C:\Program Files (x86)\Lua\5.1\lua.exe" -v | |
echo "C:\Program Files (x86)\Lua\5.1" >> $GITHUB_PATH | |
"D:/a/hello_ffi/hello_ffi/.install/LuaJIT-2.1.0-beta3/src/luajit.exe" -v | |
echo "D:/a/hello_ffi/hello_ffi/.install/LuaJIT-2.1.0-beta3/src" >> $GITHUB_PATH | |
if: runner.os == 'Windows' | |
- run: luver use 5.1.5 | |
if: runner.os == 'Linux' | |
- run: | | |
lua -v | |
luajit -v | |
luarocks --version | |
if: runner.os == 'Linux' || runner.os == 'macOS' | |
- run: | | |
lua.exe -v | |
luajit.exe -v | |
luarocks.exe --version | |
if: runner.os == 'Windows' | |
- if: matrix.os == 'macos-14' | |
name: Install Protobuf | |
uses: arduino/setup-protoc@v3 | |
with: | |
version: "25.x" | |
repo-token: ${{ secrets.GITHUB_TOKEN }} | |
- if: runner.os == 'Windows' | |
name: Choco install protoc | |
uses: crazy-max/ghaction-chocolatey@v2 | |
with: | |
args: install protoc | |
- run: make get_pact_ffi | |
# - run: make get_pact_plugins | |
- run: make lua | |
nim: | |
timeout-minutes: 10 | |
# runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-12, macos-14] | |
fail-fast: false | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }} | |
steps: | |
- uses: actions/checkout@v3 | |
- if: runner.os == 'Windows' | |
run: rm 'C:\Windows\System32\bash.exe' | |
name: 'remove wsl bash' | |
- uses: jiro4989/setup-nim-action@v1 | |
if: runner.os != 'macOS' | |
- run: brew install nim | |
if: runner.os == 'macOS' | |
- run: make get_pact_ffi | |
- run: make nim | |
dotnet: | |
timeout-minutes: 10 | |
# runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-12, macos-14] | |
fail-fast: false | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }} | |
steps: | |
- uses: actions/checkout@v3 | |
- if: runner.os == 'Windows' | |
run: rm 'C:\Windows\System32\bash.exe' | |
name: 'remove wsl bash' | |
# - if: matrix.os == 'macos-14' | |
# name: Install Protobuf | |
# uses: arduino/setup-protoc@v3 | |
# with: | |
# version: "25.x" | |
# repo-token: ${{ secrets.GITHUB_TOKEN }} | |
# if: runner.os == 'macOS' | |
- run: make get_pact_ffi | |
- run: make get_pact_plugins | |
- if: matrix.os == 'windows-latest' | |
name: add ffi to path | |
shell: pwsh | |
run: | | |
pwd >> $env:GITHUB_PATH | |
- run: make dotnet | |
# scala: | |
# timeout-minutes: 10 | |
# # runs-on: ubuntu-latest | |
# strategy: | |
# matrix: | |
# os: [ubuntu-latest, windows-latest, macos-12, macos-14] | |
# fail-fast: false | |
# runs-on: ${{ matrix.os }} | |
# defaults: | |
# run: | |
# shell: bash | |
# env: | |
# LD_LIBRARY_PATH: ${{ github.workspace }} | |
# steps: | |
# - uses: actions/checkout@v3 | |
# - if: runner.os == 'Windows' | |
# run: rm 'C:\Windows\System32\bash.exe' | |
# - uses: japgolly/[email protected] | |
# if: runner.os == 'Linux' | |
# - run: brew install scala | |
# if: runner.os == 'macOS' | |
# - run: sudo apt install -y scala | |
# if: runner.os == 'Linux' | |
# - uses: crazy-max/ghaction-chocolatey@v2 | |
# if: runner.os == 'Windows' | |
# with: | |
# args: install scala.install | |
# - run: | | |
# ls "C:\Program Files (x86)\scala\bin" | |
# # "C:\Program Files (x86)\scala\bin\scala.bat" -h | |
# echo "C:\Program Files (x86)\scala\bin" >> $GITHUB_PATH | |
# if: runner.os == 'Windows' | |
# - run: make get_pact_ffi | |
# - run: make scala |