Skip to content

test: all the things #274

test: all the things

test: all the things #274

Workflow file for this run

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, 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
- 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