Skip to content

Regression Tests

Regression Tests #3970

name: Regression Tests
on:
schedule:
- cron: "0 0/3 * * *"
workflow_dispatch:
jobs:
build:
strategy:
matrix:
# Test of these containers
container: ["ubuntu-dev:20"]
build-type: [Debug, Release]
runner: [ubuntu-latest, [self-hosted, linux, ARM64]]
runs-on: ${{ matrix.runner }}
container:
image: ghcr.io/romange/${{ matrix.container }}
options: --sysctl "net.ipv6.conf.all.disable_ipv6=0"
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Print cpu info
run: cat /proc/cpuinfo
- name: Configure & Build
run: |
cmake -B ${GITHUB_WORKSPACE}/build -DCMAKE_BUILD_TYPE=${{matrix.build-type}} -GNinja \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DPRINT_STACKTRACES_ON_SIGNAL=ON
cd ${GITHUB_WORKSPACE}/build && ninja dragonfly
pwd
ls -l ..
- name: Run regression tests action
uses: ./.github/actions/regression-tests
with:
dfly-executable: dragonfly
gspace-secret: ${{ secrets.GSPACES_BOT_DF_BUILD }}
run-only-on-ubuntu-latest: false
build-folder-name: build
# This expression serves as a ternary operator, i.e. if the condition holds it returns
# 'not NON_EXISTING_MARK' otherwise not opt_only.
# Do not filter anything in Release, but do not run opt_only in Debug. Unfortunately an
# empty string creates a 'false' expression, so we use a non existing mark
filter: ${{ matrix.build-type == 'Release' && 'not NON_EXISTING_MARK' || 'not opt_only' }}
- name: Upload logs on failure
if: failure()
uses: actions/upload-artifact@v4
with:
name: logs
path: /tmp/failed/*
lint-test-chart:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/lint-test-chart