2022-11-30 10:46:44 +00:00
|
|
|
name: Regression Tests
|
2022-11-16 11:05:43 +00:00
|
|
|
|
2022-11-30 10:46:44 +00:00
|
|
|
on:
|
2022-11-16 11:05:43 +00:00
|
|
|
schedule:
|
2023-10-02 14:07:50 +00:00
|
|
|
- cron: "0 0/3 * * *"
|
2022-11-16 11:05:43 +00:00
|
|
|
workflow_dispatch:
|
2023-02-14 12:48:39 +00:00
|
|
|
|
2022-11-16 11:05:43 +00:00
|
|
|
jobs:
|
2023-08-24 13:24:21 +00:00
|
|
|
build:
|
2022-11-30 10:46:44 +00:00
|
|
|
strategy:
|
|
|
|
matrix:
|
|
|
|
# Test of these containers
|
|
|
|
container: ["ubuntu-dev:20"]
|
2023-03-02 14:33:52 +00:00
|
|
|
build-type: [Debug, Release]
|
2023-04-20 09:36:04 +00:00
|
|
|
runner: [ubuntu-latest, [self-hosted, linux, ARM64]]
|
2023-03-31 16:59:55 +00:00
|
|
|
runs-on: ${{ matrix.runner }}
|
2022-11-30 10:46:44 +00:00
|
|
|
|
|
|
|
container:
|
|
|
|
image: ghcr.io/romange/${{ matrix.container }}
|
2024-06-13 07:55:45 +00:00
|
|
|
options: --security-opt seccomp=unconfined --sysctl "net.ipv6.conf.all.disable_ipv6=0"
|
2024-11-25 17:13:11 +00:00
|
|
|
volumes:
|
|
|
|
- /var/crash:/var/crash
|
2024-04-15 12:37:22 +00:00
|
|
|
|
2022-11-16 11:05:43 +00:00
|
|
|
steps:
|
2024-03-18 11:51:33 +00:00
|
|
|
- uses: actions/checkout@v4
|
2022-11-16 11:05:43 +00:00
|
|
|
with:
|
|
|
|
submodules: true
|
2022-11-30 10:46:44 +00:00
|
|
|
|
2024-11-25 17:13:11 +00:00
|
|
|
- name: Print environment info
|
|
|
|
run: |
|
|
|
|
cat /proc/cpuinfo
|
|
|
|
ulimit -a
|
|
|
|
env
|
2022-11-30 10:46:44 +00:00
|
|
|
- name: Configure & Build
|
2022-11-16 11:05:43 +00:00
|
|
|
run: |
|
2024-09-16 10:43:16 +00:00
|
|
|
# -no-pie to disable address randomization so we could symbolize stacktraces
|
2023-03-02 14:33:52 +00:00
|
|
|
cmake -B ${GITHUB_WORKSPACE}/build -DCMAKE_BUILD_TYPE=${{matrix.build-type}} -GNinja \
|
2024-09-16 10:43:16 +00:00
|
|
|
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DPRINT_STACKTRACES_ON_SIGNAL=ON \
|
|
|
|
-DCMAKE_CXX_FLAGS=-no-pie
|
2022-11-30 10:46:44 +00:00
|
|
|
|
|
|
|
cd ${GITHUB_WORKSPACE}/build && ninja dragonfly
|
|
|
|
pwd
|
|
|
|
ls -l ..
|
|
|
|
|
2023-08-24 13:24:21 +00:00
|
|
|
- name: Run regression tests action
|
|
|
|
uses: ./.github/actions/regression-tests
|
|
|
|
with:
|
|
|
|
dfly-executable: dragonfly
|
|
|
|
gspace-secret: ${{ secrets.GSPACES_BOT_DF_BUILD }}
|
|
|
|
build-folder-name: build
|
2024-08-04 12:41:17 +00:00
|
|
|
filter: ${{ matrix.build-type == 'Release' && 'not dbg_only' || 'not opt_only' }}
|
2024-09-17 14:35:53 +00:00
|
|
|
aws-access-key-id: ${{ secrets.AWS_S3_ACCESS_KEY }}
|
|
|
|
aws-secret-access-key: ${{ secrets.AWS_S3_ACCESS_SECRET }}
|
|
|
|
s3-bucket: ${{ secrets.S3_REGTEST_BUCKET }}
|
2023-10-20 07:50:19 +00:00
|
|
|
|
|
|
|
- name: Upload logs on failure
|
|
|
|
if: failure()
|
2024-05-16 10:02:10 +00:00
|
|
|
uses: actions/upload-artifact@v4
|
2023-10-20 07:50:19 +00:00
|
|
|
with:
|
|
|
|
name: logs
|
2024-07-10 07:58:54 +00:00
|
|
|
path: /tmp/failed/*
|
2024-02-06 08:27:10 +00:00
|
|
|
|
2024-11-25 17:13:11 +00:00
|
|
|
- name: Copy binary on a self hosted runner
|
|
|
|
if: failure()
|
|
|
|
run: |
|
|
|
|
# We must use sh syntax.
|
|
|
|
if [ "$RUNNER_ENVIRONMENT" = "self-hosted" ]; then
|
|
|
|
cd ${GITHUB_WORKSPACE}/build
|
|
|
|
timestamp=$(date +%Y-%m-%d_%H:%M:%S)
|
|
|
|
mv ./dragonfly /var/crash/dragonfy_${timestamp}
|
|
|
|
fi
|
|
|
|
|
2024-02-06 08:27:10 +00:00
|
|
|
lint-test-chart:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
2024-03-18 11:51:33 +00:00
|
|
|
- uses: actions/checkout@v4
|
2024-02-06 08:27:10 +00:00
|
|
|
- uses: ./.github/actions/lint-test-chart
|