Skip to content

more workflow fixes #52

more workflow fixes

more workflow fixes #52

Workflow file for this run

name: Build and demo testrunner
on:
push:
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: erlef/setup-beam@v1
with:
elixir-version: '1.16.x'
otp-version: '26.x'
- name: Install dependencies
run: mix deps.get
- name: Compile dependencies
run: mix deps.compile
- name: Build application
run: mix compile
- name: Build escript executable
run: MIX_ENV=prod mix escript.build
- name: Upload testrunner executable
uses: actions/upload-artifact@v4
with:
name: 'testrunner'
path: 'out/testrunner'
retention-days: 1
execute:
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v4
- uses: erlef/setup-beam@v1
with:
elixir-version: '1.16.x'
otp-version: '26.x'
- name: Download compiled binary
uses: actions/download-artifact@v4
with:
name: 'testrunner'
- name: Ensure correct file permissions
run: chmod u+x testrunner
# build plt first
- name: Build dialyzer plt
run: dialyzer --build_plt --apps erts kernel stdlib || true
- name: Print dialyzer info
run: dialyzer --version && (dialyzer || true)
- name: Print gradualizer info
run: ./gradualizer --version
- name: Print ety info # has no version yet
run: ./ety || true
- name: Print eqWAlizer info
run: ./elp version
- name: Print timeout info
run: ./timeout -t 10 -m 2000000 echo OK
- name: Execute Runner on test suites
run: ./testrunner -s etylizer-src,dialyzer-src,gradualizer-src,eqwalizer-src
- name: Archive test results
uses: actions/upload-artifact@v4
with:
name: test-report
path: test_results.json
reports:
runs-on: ubuntu-latest
needs: execute
steps:
- uses: actions/checkout@v4
- name: Download test results
uses: actions/download-artifact@v4
with:
name: test-report
path: report-generator/
- name: Setup Java 21
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '21'
- name: Run report generator
run: ./gradlew run --args="test_results.json"
working-directory: report-generator
- name: Upload plots
uses: actions/upload-artifact@v4
with:
path: 'report-generator/report-output/'
name: 'report-output'
retention-days: 14