ci/cd #287
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: ci/cd | |
on: | |
workflow_dispatch: | |
push: | |
branches: [ main, 'release/**', 'task/**', 'feature/**', 'epic/**'] | |
tags: ['**'] | |
pull_request: | |
branches: [ main, 'release/**', 'task/**', 'feature/**', 'epic/**'] | |
schedule: | |
- cron: "23 4 * * *" | |
jobs: | |
newer-builds: | |
name: Erlang ${{ matrix.otp-version }} build | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
otp-version: ['27'] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: erlef/setup-beam@v1 | |
with: | |
otp-version: ${{ matrix.otp-version }} | |
rebar3-version: '3.24' | |
- 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 | |
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 |