Files
setup-beam/.github/workflows/ubuntu.yml
T
Blake Kostner b980a5ac9b Ease Elixir escripts execution by adding ${HOME}/.mix/escripts to path (#153)
* feat: add escripts to path

* Update src/install-elixir.ps1

Co-authored-by: Paulo F. Oliveira <paulo.ferraz.oliveira@gmail.com>

* add github action combo to test escript

* force install

* use os homedir for escript install path

Co-authored-by: Paulo F. Oliveira <paulo.ferraz.oliveira@gmail.com>
2022-11-22 22:39:36 +00:00

226 lines
7.7 KiB
YAML

---
name: ubuntu
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
integration_test:
name: >
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:
- otp-version: 'master'
elixir-version: '1.14.0'
os: 'ubuntu-latest'
- otp-version: 'master'
elixir-version: '1.14.0'
os: 'ubuntu-latest'
version-type: 'strict'
- otp-version: '25'
elixir-version: '1'
rebar3-version: '3'
os: 'ubuntu-22.04'
- otp-version: '24'
elixir-version: '1'
rebar3-version: '3'
os: 'ubuntu-22.04'
- otp-version: '25.0'
elixir-version: 'v1.13.4-otp-25'
rebar3-version: '3.18.0'
os: 'ubuntu-latest'
version-type: 'strict'
- otp-version: '25.0'
elixir-version: 'v1.13.4'
rebar3-version: '3.18.0'
os: 'ubuntu-latest'
version-type: 'strict'
- otp-version: '25'
rebar3-version: 'nightly'
os: 'ubuntu-latest'
- otp-version: '24'
rebar3-version: 'nightly'
os: 'ubuntu-latest'
- elixir-version: 'v1.4'
otp-version: '20'
rebar3-version: '3.6.0'
os: 'ubuntu-20.04'
- elixir-version: 'v1.4'
otp-version: '20'
rebar3-version: '3.11'
os: 'ubuntu-20.04'
- elixir-version: 'v1.6'
otp-version: '21'
rebar3-version: '3.12'
os: 'ubuntu-20.04'
- elixir-version: 'v1.6'
otp-version: '21'
rebar3-version: '3.12'
os: 'ubuntu-20.04'
- elixir-version: 'v1.7'
otp-version: '22'
rebar3-version: '3.13'
os: 'ubuntu-20.04'
- elixir-version: 'v1.7'
otp-version: '22'
rebar3-version: '3.13'
os: 'ubuntu-20.04'
- elixir-version: 'v1.10'
otp-version: '23'
rebar3-version: '3.14'
os: 'ubuntu-20.04'
- elixir-version: 'v1.13.4'
otp-version: '25.0.2'
rebar3-version: '3.19'
os: 'ubuntu-20.04'
- elixir-version: 'v1.10'
otp-version: '23'
rebar3-version: '3.14'
os: 'ubuntu-20.04'
- elixir-version: 'v1.12'
otp-version: '24'
rebar3-version: '3.15'
os: 'ubuntu-20.04'
- elixir-version: 'v1.13.4'
otp-version: '25.0.2'
rebar3-version: '3.19'
os: 'ubuntu-20.04'
- elixir-version: 'v1.11.0'
otp-version: '22.3.4.2'
os: 'ubuntu-20.04'
version-type: 'strict'
- elixir-version: '1.10.3'
otp-version: '22.3.4.1'
os: 'ubuntu-20.04'
version-type: 'strict'
- elixir-version: '1.10.3'
otp-version: '22.3.4.1'
os: 'ubuntu-20.04'
- elixir-version: 'master'
otp-version: '23.1'
os: 'ubuntu-20.04'
- elixir-version: 'main'
otp-version: '25'
os: 'ubuntu-20.04'
version-type: 'strict'
- gleam-version: 'nightly'
otp-version: '24'
os: 'ubuntu-latest'
disable_problem_matchers: true
- gleam-version: '0.23'
otp-version: '24'
os: 'ubuntu-latest'
disable_problem_matchers: true
- gleam-version: '0.23.0-rc1'
otp-version: '24'
os: 'ubuntu-latest'
disable_problem_matchers: true
- gleam-version: '0.23.0-rc1'
otp-version: false
os: 'ubuntu-latest'
disable_problem_matchers: true
- gleam-version: '0.22.0' # Version with Gleam's old archive naming convention
otp-version: '24'
os: 'ubuntu-latest'
disable_problem_matchers: true
- elixir-version: 'v1.13'
otp-version: '24'
escript_packages: 'hex protobuf'
escript_script: 'protoc-gen-elixir --version'
os: 'ubuntu-latest'
steps:
- uses: actions/checkout@v3
- 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: Type check Gleam project (without installing Erlang/OTP)
run: |
cd test-projects/gleam_gleam
gleam check
if: ${{ matrix.combo.gleam-version && !matrix.combo.otp-version }}
- name: Run Gleam project tests (without `rebar3`)
run: |
cd test-projects/gleam_gleam
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: '24'
elixir-version: 'v1.12'
gleam-version: '0.23.0-rc1'
rebar3-version: 'nightly'
os: 'ubuntu-latest'
steps:
- uses: actions/checkout@v3
- 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: List environment variables
run: |
[ -n "${INSTALL_DIR_FOR_ELIXIR}" ] && echo "${INSTALL_DIR_FOR_ELIXIR}"
[ -n "${INSTALL_DIR_FOR_GLEAM}" ] && echo "${INSTALL_DIR_FOR_GLEAM}"
[ -n "${INSTALL_DIR_FOR_OTP}" ] && echo "${INSTALL_DIR_FOR_OTP}"
[ -n "${INSTALL_DIR_FOR_REBAR3}" ] && echo "${INSTALL_DIR_FOR_REBAR3}"