Skip to content

Commit

Permalink
Introduce rebar-version (#9)
Browse files Browse the repository at this point in the history
Previously (Remove redundant code) (+27 squashed commits)
Squashed commits:
[0b79c31] Rename as setup-beam
[312b42b] Simplify platform verification
[b43ca96] Prevent use of OTP- prefixed Erlang/OTP versions
[103a236] Move the promise-based approach to an async-based approach

(not testing for failure, so not guaranteeing readable/usable output either)
[1e7f631] Remove local test files
[d03e0c6] Prevent use of -otp- infixed Elixir versions
[697110e] Have versions output in action, not just in tests
[7360781] Ease test validations
[71e6999] Reinstall tests that were there before
[6602f20] Attempt at simplifying regexp matching with build listings
[09247af] Provide for an Elixir to "not OTP" fallback mechanism

(as explained by the comments)
[dfc4083] Attempt at renaming for clarity

We also get rid of return values when not reachable
We also move the `-otp-` part of the Elixir version upstream so it's easy to reason about
  (and update the tests accordingly)
[0d4eb28] Bump our dep.s

(trying to figure out why core.setFailed isn't making the action fail, as it should)
[ebf48ef] Have action fail (with an exception) when no expected version is found

(we otherwise feel that a simple warning is not enough, as it may end up hiding potential bugs)
[8478364] Adapt tests to our actual inputs
[16ea63d] Add prettier again, now sync'ed with jslint

(pass it on the code, already)
[cfc65df] Improve error messages and tests
[a017948] Test unavailable Elixir upon mix
[7f2a3e9] Test failing installations

Also output core.error when expected
[08061ca] Attempt at making shell scripts more robust
[4ee73cb] Separate test code from production code

1. inputs (for CI) are managed by code, not by .yml env. variables
2. rebar3_builds.txt added for stable repeatability
3. tests tweaked to make it easier to modify and drop dependency on production code
4. `dist` regenerated (duplicate files gone)
5. setup-elixir.js tweaked to this new reality
[d17fed4] Remove prettier from the package
[7d6f8f5] Actually break CI when we should
[b972eaf] Remove unrequired element
[0ffa28a] Ease maintenance and readability
[4690169] Fix as per broken tests
[a1371c6] Merge setup-erlang in
  • Loading branch information
paulo-ferraz-oliveira committed Mar 30, 2021
1 parent 86521d7 commit 89cb004
Show file tree
Hide file tree
Showing 112 changed files with 11,284 additions and 7,171 deletions.
16 changes: 16 additions & 0 deletions .eslintrc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
env:
node: true
es2021: true
extends:
- google
parserOptions:
ecmaVersion: 12
rules: {
indent: ["warn", 2],
max-len: ["warn", 100],
no-unused-vars: ["error", {"varsIgnorePattern": "^_"}],
require-jsdoc: 0,
semi: 0,
no-undef: "error"
}
1 change: 0 additions & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
node_modules/** -diff linguist-generated=true
.licenses/** -diff linguist-generated=true
32 changes: 32 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
name: ci

on:
push:
branches:
- main
pull_request:
branches:
- main

jobs:
check_integrity:
name: Make sure expected pre-release actions are performed
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: '12'
- run: npm install -g npm
- run: npm install
- run: npm run format
- run: npm install -g markdownlint-cli
- run: npm run markdownlint
- run: npm run shellcheck
- run: npm run yamllint
- run: npm run jslint
- run: npm run licenses
- run: npm run build
- name: Check if build left artifacts
run: git diff --exit-code
27 changes: 0 additions & 27 deletions .github/workflows/licensed.yml

This file was deleted.

85 changes: 75 additions & 10 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
name: Test
---
name: test

on:
push: {branches: main}
Expand All @@ -8,8 +9,8 @@ on:

jobs:
unit_test:
name: Pre-release unit tests
runs-on: ubuntu-latest
name: Unit tests
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
Expand All @@ -18,17 +19,26 @@ jobs:
- run: npm test

integration_test:
runs-on: ubuntu-latest
name: OTP ${{matrix.pair.otp-version}} / Elixir ${{matrix.pair.elixir-version}}
name: >
Pre-release integration tests
(Erlang/OTP ${{matrix.pair.otp-version}},
Elixir ${{matrix.pair.elixir-version}},
rebar3 ${{matrix.pair.rebar3-version}})
runs-on: ubuntu-18.04
strategy:
fail-fast: false
matrix:
pair:
# Full Versions
- otp-version: '22.0'
elixir-version: '1.9.1'
- otp-version: '22.3.4'
rebar3-version: '3.14.4'
# Semver ranges
- otp-version: '21.x'
elixir-version: '<1.9.1'
- otp-version: '21.x'
rebar3-version: '3.14.4'
# Branches
- otp-version: '22.0'
elixir-version: master
Expand All @@ -37,18 +47,73 @@ jobs:
# Pre-releases
- otp-version: '23.0'
elixir-version: '1.11.0-rc.0'
# Fallback to Elixir (with no OTP)
- otp-version: '24.0-rc1'
elixir-version: '1.9.3'
# Miscellaneous combos
- elixir-version: 'master'
otp-version: '22.3'
- elixir-version: 'master'
otp-version: '22'
- elixir-version: 'master'
otp-version: '^22'
- elixir-version: 'master'
otp-version: '22'
- elixir-version: '1.6.5'
otp-version: 'maint-21'
- elixir-version: 'v1.6.5'
otp-version: 'maint-21'
- elixir-version: 'v1.9.x'
otp-version: '21.1'
- elixir-version: '1.9.x'
otp-version: '21'
- elixir-version: 'v1.8.x'
otp-version: '22'
- elixir-version: 'v1.8.x'
otp-version: '23.1'
- elixir-version: 'v1.8'
otp-version: '^22.3'
- elixir-version: 'v1.10'
otp-version: '21.x'
- elixir-version: 'v1.x'
otp-version: 'master'
- elixir-version: 'v1.11.0-rc.0'
otp-version: '23'
- elixir-version: 'v1.11.0-rc.0'
otp-version: '23.0'
- elixir-version: 'v1.11.0-rc.0'
otp-version: 'master'
steps:
- uses: actions/checkout@v2
- name: Use erlef/setup-elixir
id: setup-elixir
- name: Use erlef/setup-beam
id: setup-beam
uses: ./
with:
otp-version: ${{matrix.pair.otp-version}}
elixir-version: ${{matrix.pair.elixir-version}}
- name: Output runtime versions
run: echo "Elixir ${{steps.setup-elixir.outputs.elixir-version}} / OTP ${{steps.setup-elixir.outputs.otp-version}}"
rebar3-version: ${{matrix.pair.rebar3-version}}
- name: Erlang/OTP version (action)
run: echo "Erlang/OTP ${{steps.setup-beam.outputs.otp-version}}"
- name: Elixir version (action)
run: echo "Elixir ${{steps.setup-beam.outputs.elixir-version}}"
if: ${{matrix.pair.elixir-version}}
- name: rebar3 version (action)
run: echo "rebar3 ${{steps.setup-beam.outputs.rebar3-version}}"
if: ${{matrix.pair.rebar3-version}}
- name: mix version and help (CLI)
run: |
mix -v
mix help local.rebar
mix help local.hex
if: ${{matrix.pair.elixir-version}}
- name: Run Mix project tests
run: |-
cd test-project
run: |
cd test-projects/mix
mix deps.get
mix test
if: ${{matrix.pair.elixir-version}}
- name: Run rebar3 project tests
run: |
cd test-projects/rebar3
rebar3 as test do xref,dialyzer,ct,cover
if: ${{matrix.pair.rebar3-version}}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
node_modules/**
21 changes: 0 additions & 21 deletions .licensed.yml

This file was deleted.

24 changes: 0 additions & 24 deletions .licenses/npm/@actions/core-1.0.0.dep.yml

This file was deleted.

20 changes: 0 additions & 20 deletions .licenses/npm/@actions/core-1.2.6.dep.yml

This file was deleted.

24 changes: 0 additions & 24 deletions .licenses/npm/@actions/exec-1.0.0.dep.yml

This file was deleted.

30 changes: 0 additions & 30 deletions .licenses/npm/@actions/exec-1.0.4.dep.yml

This file was deleted.

24 changes: 0 additions & 24 deletions .licenses/npm/@actions/io-1.0.0.dep.yml

This file was deleted.

30 changes: 0 additions & 30 deletions .licenses/npm/@actions/io-1.0.2.dep.yml

This file was deleted.

Loading

0 comments on commit 89cb004

Please sign in to comment.