Stress tests #418
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: Stress tests | |
on: | |
schedule: | |
- cron: "30 2 * * *" | |
jobs: | |
x86_64-linux: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- image: ghcr.io/ponylang/ponyc-ci-x86-64-unknown-linux-ubuntu24.04-builder:20240425 | |
name: x86-64-unknown-linux-ubuntu24.04 [release] | |
target: test-stress-release | |
debugger: lldb | |
- image: ghcr.io/ponylang/ponyc-ci-x86-64-unknown-linux-ubuntu24.04-builder:20240425 | |
name: x86-64-unknown-linux-ubuntu24.04 [debug] | |
target: test-stress-debug | |
debugger: lldb | |
- image: ghcr.io/ponylang/ponyc-ci-x86-64-unknown-linux-ubuntu24.04-builder:20240425 | |
name: x86-64-unknown-linux-ubuntu24.04 [cd] [release] | |
target: test-stress-with-cd-release | |
debugger: lldb | |
- image: ghcr.io/ponylang/ponyc-ci-x86-64-unknown-linux-ubuntu24.04-builder:20240425 | |
name: x86-64-unknown-linux-ubuntu24.04 [cd] [debug] | |
target: test-stress-with-cd-debug | |
debugger: lldb | |
- image: ghcr.io/ponylang/ponyc-ci-x86-64-unknown-linux-musl-builder:20231003 | |
name: x86-64-unknown-linux-musl [release] | |
target: test-stress-release | |
debugger: lldb | |
- image: ghcr.io/ponylang/ponyc-ci-x86-64-unknown-linux-musl-builder:20231003 | |
name: x86-64-unknown-linux-musl [debug] | |
target: test-stress-debug | |
debugger: lldb | |
- image: ghcr.io/ponylang/ponyc-ci-x86-64-unknown-linux-musl-builder:20231003 | |
name: x86-64-unknown-linux-musl [cd] [release] | |
target: test-stress-with-cd-release | |
debugger: lldb | |
- image: ghcr.io/ponylang/ponyc-ci-x86-64-unknown-linux-musl-builder:20231003 | |
name: x86-64-unknown-linux-musl [cd] [debug] | |
target: test-stress-with-cd-debug | |
debugger: lldb | |
name: ${{ matrix.name }} | |
container: | |
image: ${{ matrix.image }} | |
options: --user pony --cap-add=SYS_PTRACE --security-opt seccomp=unconfined | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4.1.1 | |
- name: Restore Libs Cache | |
id: restore-libs | |
uses: actions/cache/restore@v3 | |
with: | |
path: build/libs | |
key: libs-${{ matrix.image }}-${{ hashFiles('Makefile', 'CMakeLists.txt', 'libs/CMakeLists.txt') }} | |
- name: Build Libs | |
if: steps.restore-libs.outputs.cache-hit != 'true' | |
run: make libs build_flags=-j8 | |
- name: Save Libs Cache | |
if: steps.restore-libs.outputs.cache-hit != 'true' | |
uses: actions/cache/save@v3 | |
with: | |
path: build/libs | |
key: libs-${{ matrix.image }}-${{ hashFiles('Makefile', 'CMakeLists.txt', 'libs/CMakeLists.txt') }} | |
- name: Build Debug Runtime | |
run: | | |
make configure config=debug | |
make build config=debug | |
- name: Run Stress Test | |
run: make ${{ matrix.target }} config=debug usedebugger='${{ matrix.debugger }}' | |
- name: Send alert on failure | |
if: ${{ failure() }} | |
uses: zulip/github-actions-zulip/send-message@08b6fbd07f5834e5b930a85bc7740e9fd44ab2e7 | |
with: | |
api-key: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_API_KEY }} | |
email: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_EMAIL }} | |
organization-url: 'https://ponylang.zulipchat.com/' | |
to: notifications | |
type: stream | |
topic: ${{ github.repository }} scheduled job failure | |
content: ${{ github.server_url}}/${{ github.repository }}/actions/runs/${{ github.run_id }}failed. | |
aarch64-linux: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
# these don't currently use a debugger as cross compilation hasn't | |
# been set up to do 'run in debugger' | |
- image: ghcr.io/ponylang/ponyc-ci-cross-aarch64:20240427 | |
name: aarch64-unknown-linux-ubuntu24.04 [release] | |
target: test-cross-stress-release | |
- image: ghcr.io/ponylang/ponyc-ci-cross-aarch64:20240427 | |
name: aarch64-unknown-linux-ubuntu24.04 [debug] | |
target: test-cross-stress-debug | |
- image: ghcr.io/ponylang/ponyc-ci-cross-aarch64:20240427 | |
name: aarch64-unknown-linux-ubuntu24.04 [cd] [release] | |
target: test-cross-stress-with-cd-release | |
- image: ghcr.io/ponylang/ponyc-ci-cross-aarch64:20240427 | |
name: aarch64-unknown-linux-ubuntu24.04 [cd] [debug] | |
target: test-cross-stress-with-cd-debug | |
name: ${{ matrix.name }} | |
container: | |
image: ${{ matrix.image }} | |
options: --user pony --cap-add=SYS_PTRACE --security-opt seccomp=unconfined | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4.1.1 | |
- name: Restore Libs Cache | |
id: restore-libs | |
uses: actions/cache/restore@v3 | |
with: | |
path: build/libs | |
key: libs-${{ matrix.image }}-${{ hashFiles('Makefile', 'CMakeLists.txt', 'libs/CMakeLists.txt') }} | |
- name: Build Libs | |
if: steps.restore-libs.outputs.cache-hit != 'true' | |
run: make libs build_flags=-j8 | |
- name: Save Libs Cache | |
if: steps.restore-libs.outputs.cache-hit != 'true' | |
uses: actions/cache/save@v3 | |
with: | |
path: build/libs | |
key: libs-${{ matrix.image }}-${{ hashFiles('Makefile', 'CMakeLists.txt', 'libs/CMakeLists.txt') }} | |
- name: Build Debug Runtime | |
run: | | |
make configure config=debug | |
make build config=debug | |
- name: Build Debug Cross-Compiled Runtime | |
run: make cross-libponyrt config=debug CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ arch=armv8-a cross_cflags="-march=armv8-a -mtune=cortex-a53" cross_lflags="-O3;-march=aarch64" | |
- name: Run Stress Test | |
run: make ${{ matrix.target }} config=debug PONYPATH=../armv8-a/debug cross_triple=aarch64-unknown-linux-gnu cross_arch=armv8-a cross_cpu=cortex-a53 cross_linker=aarch64-linux-gnu-gcc cross_runner="qemu-aarch64-static -cpu cortex-a53 -L /usr/local/aarch64-linux-gnu/libc" | |
- name: Send alert on failure | |
if: ${{ failure() }} | |
uses: zulip/github-actions-zulip/send-message@08b6fbd07f5834e5b930a85bc7740e9fd44ab2e7 | |
with: | |
api-key: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_API_KEY }} | |
email: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_EMAIL }} | |
organization-url: 'https://ponylang.zulipchat.com/' | |
to: notifications | |
type: stream | |
topic: ${{ github.repository }} scheduled job failure | |
content: ${{ github.server_url}}/${{ github.repository }}/actions/runs/${{ github.run_id }}failed. | |
x86_64-windows: | |
runs-on: windows-2022 | |
defaults: | |
run: | |
shell: pwsh | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- name: "x86-64 Windows [release]" | |
target: stress-test-release | |
- name: "x86-64 Windows [debug]" | |
target: stress-test-debug | |
- name: "x86-64 Windows [cd] [release]" | |
target: stress-test-with-cd-release | |
- name: "x86-64 Windows [cd] [debug]" | |
target: stress-test-with-cd-debug | |
name: ${{ matrix.name }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4.1.1 | |
- name: Install Dependencies | |
run: | | |
function msys() { C:\msys64\usr\bin\bash.exe @('-lc') + @Args }; msys ' '; msys 'pacman --noconfirm -Syuu'; msys 'pacman --noconfirm -Syuu'; msys 'pacman --noconfirm -S --needed base-devel mingw-w64-x86_64-lldb'; msys 'pacman --noconfirm -Scc' | |
python.exe -m pip install --upgrade cloudsmith-cli | |
- name: Restore Libs Cache | |
id: restore-libs | |
uses: actions/cache/restore@v3 | |
with: | |
path: build/libs | |
key: libs-windows-2022-${{ hashFiles('make.ps1', 'CMakeLists.txt', 'libs/CMakeLists.txt') }} | |
- name: Build Libs | |
if: steps.restore-libs.outputs.cache-hit != 'true' | |
run: .\make.ps1 -Command libs | |
- name: Save Libs Cache | |
if: steps.restore-libs.outputs.cache-hit != 'true' | |
uses: actions/cache/save@v3 | |
with: | |
path: build/libs | |
key: libs-windows-2022-${{ hashFiles('make.ps1', 'CMakeLists.txt', 'libs/CMakeLists.txt') }} | |
- name: Configure | |
run: .\make.ps1 -Command configure -Config Debug | |
- name: Build Debug Runtime | |
run: .\make.ps1 -Command build -Config Debug | |
- name: Run Stress Test | |
run: .\make.ps1 -Command ${{ matrix.target }} -Config Debug | |
- name: Send alert on failure | |
if: ${{ failure() }} | |
uses: zulip/github-actions-zulip/send-message@08b6fbd07f5834e5b930a85bc7740e9fd44ab2e7 | |
with: | |
api-key: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_API_KEY }} | |
email: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_EMAIL }} | |
organization-url: 'https://ponylang.zulipchat.com/' | |
to: notifications | |
type: stream | |
topic: ${{ github.repository }} scheduled job failure | |
content: ${{ github.server_url}}/${{ github.repository }}/actions/runs/${{ github.run_id }} failed. | |
x86_64-macos: | |
runs-on: macos-13 | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- name: "x86-64 macOS [release]" | |
target: test-stress-release | |
- name: "x86-64 macOS [debug]" | |
target: test-stress-debug | |
- name: "x86-64 macOS [cd] [release]" | |
target: test-stress-with-cd-release | |
- name: "x86-64 macOS [cd] [debug]" | |
target: test-stress-with-cd-debug | |
name: ${{ matrix.name }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4.1.1 | |
- name: Restore Libs Cache | |
id: restore-libs | |
uses: actions/cache/restore@v3 | |
with: | |
path: build/libs | |
key: libs-x86-macos-13-${{ hashFiles('Makefile', 'CMakeLists.txt', 'libs/CMakeLists.txt') }} | |
- name: Build Libs | |
if: steps.restore-libs.outputs.cache-hit != 'true' | |
run: make libs build_flags=-j8 | |
- name: Save Libs Cache | |
if: steps.restore-libs.outputs.cache-hit != 'true' | |
uses: actions/cache/save@v3 | |
with: | |
path: build/libs | |
key: libs-x86-macos-13-${{ hashFiles('Makefile', 'CMakeLists.txt', 'libs/CMakeLists.txt') }} | |
- name: Build Debug Runtime | |
run: | | |
make configure arch=x86-64 config=debug | |
make build config=debug | |
- name: Run Stress Test | |
run: make ${{ matrix.target }} config=debug usedebugger=lldb | |
- name: Send alert on failure | |
if: ${{ failure() }} | |
uses: zulip/github-actions-zulip/send-message@08b6fbd07f5834e5b930a85bc7740e9fd44ab2e7 | |
with: | |
api-key: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_API_KEY }} | |
email: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_EMAIL }} | |
organization-url: 'https://ponylang.zulipchat.com/' | |
to: notifications | |
type: stream | |
topic: ${{ github.repository }} scheduled job failure | |
content: ${{ github.server_url}}/${{ github.repository }}/actions/runs/${{ github.run_id }} failed. |