5.7 KiB · text 806cbc3
---
name: ubuntu
permissions:
contents: read
on:
push:
branches:
- main
pull_request:
branches:
- '*'
workflow_dispatch: {}
jobs:
integration_test:
name: >
OS ${{matrix.combo.os}},
OTP ${{matrix.combo.otp-version}},
Elixir ${{matrix.combo.elixir-version}},
Gleam ${{matrix.combo.gleam-version}},
rebar3 ${{matrix.combo.rebar3-version}}
runs-on: ${{matrix.combo.os}}
strategy:
fail-fast: false
matrix:
combo:
# Ubuntu 22.04 - per README
- otp-version: '24.2'
os: 'ubuntu-22.04'
- otp-version: '29'
os: 'ubuntu-22.04'
# Ubuntu 24.04 - per README
- otp-version: '24.3'
os: 'ubuntu-24.04'
- otp-version: '29'
os: 'ubuntu-24.04'
# Ubuntu 26.04 - per README
- otp-version: '26'
os: 'ubuntu-26.04'
- otp-version: '29'
os: 'ubuntu-26.04'
# Ubuntu latest
- otp-version: '27'
elixir-version: 'v1.17.0'
rebar3-version: '3.23'
os: 'ubuntu-latest'
- otp-version: '26.0'
elixir-version: 'v1.14-otp-25'
os: 'ubuntu-latest'
version-type: 'strict'
- otp-version: '26.0'
elixir-version: '1.14.5'
os: 'ubuntu-latest'
version-type: 'strict'
- otp-version: '25.2'
elixir-version: '1.14.2'
os: 'ubuntu-latest'
- otp-version: '25.2'
elixir-version: '1.14.3'
os: 'ubuntu-latest'
version-type: 'strict'
- otp-version: '25.0'
elixir-version: 'v1.16.2-otp-25'
rebar3-version: '3.18.0'
os: 'ubuntu-latest'
version-type: 'strict'
- otp-version: '25.0'
elixir-version: 'v1.16.3'
rebar3-version: '3.18.0'
os: 'ubuntu-latest'
version-type: 'strict'
- otp-version: 'latest'
rebar3-version: 'latest'
os: 'ubuntu-latest'
- gleam-version: '1.9.0'
otp-version: '27'
os: 'ubuntu-latest'
disable_problem_matchers: true
- gleam-version: '1.9.0'
otp-version: false
os: 'ubuntu-latest'
disable_problem_matchers: true
- elixir-version: 'v1.16'
otp-version: '24'
escript_packages: 'hex protobuf'
escript_script: 'protoc-gen-elixir --version'
os: 'ubuntu-latest'
steps:
- uses: actions/checkout@v7.0.0
- name: Use erlef/setup-beam
id: setup-beam
uses: ./
with:
otp-version: ${{matrix.combo.otp-version}}
elixir-version: ${{matrix.combo.elixir-version}}
gleam-version: ${{matrix.combo.gleam-version}}
rebar3-version: ${{matrix.combo.rebar3-version}}
version-type: ${{matrix.combo.version-type}}
- name: Erlang/OTP version (action)
run: echo "Erlang/OTP ${{steps.setup-beam.outputs.otp-version}}"
if: ${{matrix.combo.otp-version}}
- name: Elixir version (action)
run: echo "Elixir ${{steps.setup-beam.outputs.elixir-version}}"
if: ${{matrix.combo.elixir-version}}
- name: Gleam version (action)
run: echo "Gleam ${{steps.setup-beam.outputs.gleam-version}}"
if: ${{matrix.combo.gleam-version}}
- name: rebar3 version (action)
run: echo "rebar3 ${{steps.setup-beam.outputs.rebar3-version}}"
if: ${{matrix.combo.rebar3-version}}
- name: mix version and help (CLI)
run: |
mix -v
mix help local.rebar
mix help local.hex
if: ${{matrix.combo.elixir-version}}
- name: Run Elixir/Mix project tests
run: |
cd test/projects/elixir_mix
mix deps.get
mix test
if: ${{matrix.combo.elixir-version}}
- name: Run Erlang/rebar3 project tests
run: |
cd test/projects/erlang_rebar3
rebar3 ct
if: ${{matrix.combo.rebar3-version}}
- name: Format Gleam project (without installing Erlang/OTP)
run: |
cd test/projects/gleamgleam
gleam format
if: ${{ matrix.combo.gleam-version && !matrix.combo.otp-version }}
- name: Run Gleam project tests (without `rebar3`)
run: |
cd test/projects/gleamgleam
gleam test
if: ${{ matrix.combo.gleam-version && matrix.combo.otp-version && !matrix.combo.rebar3-version }}
- name: Run escript
run: |
mix escript.install --force ${{matrix.combo.escript_packages}}
${{matrix.combo.escript_script}}
if: ${{matrix.combo.escript_packages && matrix.combo.escript_script}}
environment_variables:
name: Environment variables
runs-on: ${{matrix.combo.os}}
strategy:
fail-fast: false
matrix:
combo:
- otp-version: 27
elixir-version: 1.19
gleam-version: 1.10
rebar3-version: 3.24
os: ubuntu-latest
steps:
- uses: actions/checkout@v7.0.0
- name: Use erlef/setup-beam
id: setup-beam
uses: ./
with:
otp-version: ${{matrix.combo.otp-version}}
elixir-version: ${{matrix.combo.elixir-version}}
gleam-version: ${{matrix.combo.gleam-version}}
rebar3-version: ${{matrix.combo.rebar3-version}}
- run: env
- name: Check environment variables
run: |
"${INSTALL_DIR_FOR_ELIXIR}"/bin/elixir -v
"${INSTALL_DIR_FOR_GLEAM}"/bin/gleam --version
"${INSTALL_DIR_FOR_OTP}"/bin/erl -version
"${INSTALL_DIR_FOR_REBAR3}"/bin/rebar3 version