mirror of
https://github.com/erlef/setup-beam.git
synced 2026-07-23 15:16:08 +00:00
8d31e4db55
* Check tests failing for something that should pass * Test with version-type: strict * Add more tests GitHub actions is refusing to run a given workflow :shrug * Try to fix new test that shouldn't be failing Which is exactly what we intended to originate by starting a new pull request. * Fix tests as per CI * Fix tests as per CI * Adapt to "latest" * Fix as per CI results Actions' window shows everything as Ok but then internals not Error when evaluating 'runs-on' for job 'integration_test'. .github/workflows/ubuntu.yml (Line: 19, Col: 14): Unexpected type of value '', expected type: OneOf. Strange one, this one! * Try to "help" for non-OTP declared input We do this for OTP-, but not for maint- as the former is hopefully more common than the latter * Introduce `latest` to signify `master` Semantically they're similar, but with `latest` we know: 1. to fetch Elixir's no-otp-... version 2. to fetch Erlang's master whereas with 25 (latest at this moment) we'd try to fetch elixirvsn-otp-25 which could fail with Elixir master and version-type strict * Fix as per CI Still not 100% convinced that `latest` should be separate from `master` but I want to know how tests run, in this case in particular * Fix as per CI * Fix as per CI * Revert potential wrong decision * Fix as per understand recent Elixir changes (namely master v. main) * Try to simplify it We introduce the concept of version v. branch (as per @ericmj) and we use that to find the most appropriate Erlang/Elixir combo.
221 lines
7.3 KiB
YAML
221 lines
7.3 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.0'
|
|
otp-version: '17'
|
|
os: 'ubuntu-18.04'
|
|
- elixir-version: 'v1.1'
|
|
otp-version: '18'
|
|
os: 'ubuntu-18.04'
|
|
- elixir-version: 'v1.2'
|
|
otp-version: '19'
|
|
rebar3-version: '3.10'
|
|
os: 'ubuntu-18.04'
|
|
- elixir-version: 'v1.4'
|
|
otp-version: '20'
|
|
rebar3-version: '3.6.0'
|
|
os: 'ubuntu-18.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-18.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-18.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-18.04'
|
|
- elixir-version: 'v1.13.4'
|
|
otp-version: '25.0.2'
|
|
rebar3-version: '3.19'
|
|
os: 'ubuntu-18.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'
|
|
- gleam-version: '0.23'
|
|
otp-version: '24'
|
|
os: 'ubuntu-latest'
|
|
- gleam-version: '0.23.0-rc1'
|
|
otp-version: '24'
|
|
os: 'ubuntu-latest'
|
|
- gleam-version: '0.23.0-rc1'
|
|
otp-version: false
|
|
os: 'ubuntu-latest'
|
|
- gleam-version: '0.22.0' # Version with Gleam's old archive naming convention
|
|
otp-version: '24'
|
|
os: 'ubuntu-latest'
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- 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 }}
|
|
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@v2
|
|
- 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}"
|