Skip to content

ci/cd

ci/cd #273

Workflow file for this run

name: ci/cd
on:
push:
branches: [ main, 'release/**', 'task/**', 'feature/**', 'epic/**']
tags: ['**']
pull_request:
branches: [ main, 'release/**', 'task/**', 'feature/**', 'epic/**']
jobs:
builds:
name: Erlang ${{ matrix.otp-version }} build
runs-on: ubuntu-latest
strategy:
matrix:
otp-version: ['26', '25', '24']
steps:
- uses: actions/checkout@v4
- uses: erlef/setup-beam@v1
with:
otp-version: ${{ matrix.otp-version }}
rebar3-version: '3.22'
- name: Check rebar3 Version
run: DEBUG=1 rebar3 --version
- name: Compile
run: rebar3 compile
# - name: Xref Checks
# run: rebar3 xref
# - name: Dialyzer
# run: rebar3 dialyzer
- name: Run Unit Tests
run: rebar3 as test eunit
- name: Run Proper Tests
run: rebar3 as test do proper -c
- name: Check Coverage
run: rebar3 as test cover -v --min_coverage=0
- name: Get Supported 'new' Templates
run: cd priv/testing && rebar3 new
- name: Create LFE Library Project
run: cd priv/testing && rebar3 new lfe-lib example-lib
- name: Compile LFE Library Project
run: cd priv/testing/example-lib && DEBUG=1 rebar3 lfe compile
- name: Create LFE Main Project
run: cd priv/testing && rebar3 new lfe-main example-main
- name: Run LFE Main Project's Script
run: cd priv/testing/example-main && rebar3 lfe run -- 42
- name: Create LFE/OTP Application Project
run: cd priv/testing && rebar3 new lfe-app example-app
- name: Compile LFE Application Project
run: cd priv/testing/example-app && DEBUG=1 rebar3 lfe compile
- name: Create LFE escript Project
run: cd priv/testing && rebar3 new lfe-escript example-escript
- name: Escriptize LFE escript Project
run: cd priv/testing/example-escript && rebar3 lfe escriptize
- name: Run LFE escript Project
run: cd priv/testing/example-escript && rebar3 lfe run-escript 1 2 5
- name: Create LFE/OTP Release Project
run: cd priv/testing && rebar3 new lfe-release example-release
- name: Build LFE/OTP Release
run: cd priv/testing/example-release && rebar3 release
# XXX Startup keeps hanging in Github Actions ... probably need to do somehting
# different.
# - name: Start LFE/OTP Release
# run: cd priv/testing/example-release && rebar3 lfe run-release start && sleep 5
# - name: Ping LFE/OTP Release
# run: cd priv/testing/example-release && rebar3 lfe run-release ping
- name: Versions Command Output
run: cd priv/testing/example-release && rebar3 lfe versions
- name: Clean Command
run: cd priv/testing/example-lib && rebar3 lfe clean
- name: Clean-build Command
run: cd priv/testing/example-app && rebar3 lfe clean-build
older-builds:
name: Erlang ${{ matrix.otp-version }} build (old)
runs-on: ubuntu-20.04
strategy:
matrix:
otp-version: ['23', '22', '21']
steps:
- uses: actions/checkout@v4
- uses: erlef/setup-beam@v1
with:
otp-version: ${{ matrix.otp-version }}
rebar3-version: '3.15'
- name: Check rebar3 Version
run: DEBUG=1 rebar3 --version
- name: Compile
run: rebar3 compile
# - name: Xref Checks
# run: rebar3 xref
# - name: Dialyzer
# run: rebar3 dialyzer
- name: Run Unit Tests
run: rebar3 as test eunit
- name: Run Proper Tests
run: rebar3 as test do proper -c
- name: Check Coverage
run: rebar3 as test cover -v --min_coverage=0
- name: Get Supported 'new' Templates
run: cd priv/testing && rebar3 new
- name: Create LFE Library Project
run: cd priv/testing && rebar3 new lfe-lib example-lib
- name: Compile LFE Library Project
run: cd priv/testing/example-lib && DEBUG=1 rebar3 lfe compile
- name: Create LFE Main Project
run: cd priv/testing && rebar3 new lfe-main example-main
- name: Run LFE Main Project's Script
run: cd priv/testing/example-main && rebar3 lfe run -- 42
- name: Create LFE/OTP Application Project
run: cd priv/testing && rebar3 new lfe-app example-app
- name: Compile LFE Application Project
run: cd priv/testing/example-app && DEBUG=1 rebar3 lfe compile
- name: Create LFE escript Project
run: cd priv/testing && rebar3 new lfe-escript example-escript
- name: Escriptize LFE escript Project
run: cd priv/testing/example-escript && rebar3 lfe escriptize
- name: Run LFE escript Project
run: cd priv/testing/example-escript && rebar3 lfe run-escript 1 2 5
- name: Create LFE/OTP Release Project
run: cd priv/testing && rebar3 new lfe-release example-release
- name: Build LFE/OTP Release
run: cd priv/testing/example-release && rebar3 release
# XXX Startup keeps hanging in Github Actions ... probably need to do somehting
# different.
# - name: Start LFE/OTP Release
# run: cd priv/testing/example-release && rebar3 lfe run-release start && sleep 5
# - name: Ping LFE/OTP Release
# run: cd priv/testing/example-release && rebar3 lfe run-release ping
- name: Versions Command Output
run: cd priv/testing/example-release && rebar3 lfe versions
- name: Clean Command
run: cd priv/testing/example-lib && rebar3 lfe clean
- name: Clean-build Command
run: cd priv/testing/example-app && rebar3 lfe clean-build