Skip to content

timing

timing #140

Workflow file for this run

name: Passenger CI tests
env:
DEFAULT_RUBY_VERSION: 3.1
BUNDLE_CLEAN: true
USE_ASAN: true
on:
push: {}
pull_request: {}
jobs:
cxx-tests-linux:
name: C++ unit tests on Linux
runs-on: ubuntu-latest
timeout-minutes: 30
env:
EXTRA_CFLAGS: '-fdiagnostics-color'
EXTRA_CXXFLAGS: '-fdiagnostics-color'
SCCACHE_AZURE_BLOB_CONTAINER: ${{ vars.SCCACHE_AZURE_BLOB_CONTAINER }}
SCCACHE_AZURE_KEY_PREFIX: sccache/cxx-linux
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ env.DEFAULT_RUBY_VERSION }}
bundler-cache: true
- name: Setup bundle gem path
run: ./dev/ci/setup-bundle-gem-path
- name: Setup sccache
run: ./dev/ci/setup-sccache
env:
ARCH_AND_OS: x86_64-unknown-linux-musl
SCCACHE_LOG: debug
SCCACHE_AZURE_CONNECTION_STRING: ${{ secrets.AZURE_CI_STORAGE_CONNECTION_STRING }}
- name: Setup library dependencies
run: >
sudo apt update &&
sudo apt install -y libcurl4-openssl-dev
- name: Setup misc
run: |
set -x
sudo chmod 755 "$HOME"
cp test/config.json.github-ci-linux test/config.json
- name: Build C++ tests
run: bundle exec drake -j4 test:cxx:build
- name: Run C++ tests
run: >
sudo env
PATH="$PATH"
GEM_PATH="$GEM_PATH"
../buildout/test/cxx/main
working-directory: test
- name: Archive logs
uses: actions/upload-artifact@v4
with:
name: cxx-test-logs-macos
path: 'buildout/testlogs/*'
- name: Teardown sccache
run: ./dev/ci/teardown-sccache
if: always()
cxx-tests-macos:
name: C++ unit tests on macOS
runs-on: macos-latest
timeout-minutes: 30
env:
CPATH: /opt/homebrew/opt/openssl@3/include
EXTRA_CFLAGS: '-fcolor-diagnostics'
EXTRA_CXXFLAGS: '-fcolor-diagnostics'
SCCACHE_AZURE_BLOB_CONTAINER: ${{ vars.SCCACHE_AZURE_BLOB_CONTAINER }}
SCCACHE_AZURE_KEY_PREFIX: sccache/cxx-macos
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ env.DEFAULT_RUBY_VERSION }}
bundler-cache: true
- name: Setup bundle gem path
run: ./dev/ci/setup-bundle-gem-path
- name: Setup sccache
run: ./dev/ci/setup-sccache
env:
ARCH_AND_OS: aarch64-apple-darwin
SCCACHE_LOG: debug
SCCACHE_AZURE_CONNECTION_STRING: ${{ secrets.AZURE_CI_STORAGE_CONNECTION_STRING }}
- name: Setup misc
run: |
sudo chmod 755 "$HOME"
sed "s|_USER_|$(whoami)|" test/config.json.github-ci-macos > test/config.json
- name: Build C++ tests
run: bundle exec drake -j4 test:cxx:build
- name: Run C++ tests
# The AbortHandler doesn't work so well on Github's macOS runners:
# - crash-watch invocation freezes the runner, so we disable this.
# - resuming the parent process after SIGSTOP doesn't work, so we force kill the parent.
run: >
sudo env
PATH="$PATH"
GEM_PATH="$GEM_PATH"
PASSENGER_DUMP_WITH_CRASH_WATCH=false
PASSENGER_FORCE_TERMINATE_ON_ABORT=true
../buildout/test/cxx/main
working-directory: test
# The AbortHandler may not be able to forcefully kill the parent. We set a low timeout
# to prevent the test from hanging for a long time.
timeout-minutes: 10
- name: Archive logs
uses: actions/upload-artifact@v4
with:
name: cxx-test-logs-macos
path: 'buildout/testlogs/*'
- name: Teardown sccache
run: ./dev/ci/teardown-sccache
if: always()
# integration:
# name: '${{ matrix.integration.name }} integration tests on ${{ matrix.os }}'
# strategy:
# fail-fast: false
# matrix:
# os:
# - macos-latest
# - ubuntu-latest
# integration:
# - name: 'Apache 2'
# label: 'apache2'
# - name: 'Nginx dynamic module'
# label: 'nginx-dynamic'
# - name: 'Nginx'
# label: 'nginx'
# - name: 'Standalone'
# label: 'standalone'
# runs-on: ${{ matrix.os }}
# steps:
# - uses: actions/checkout@v4
# with:
# submodules: true
# - uses: ruby/setup-ruby@v1
# with:
# ruby-version: ${{ env.DEFAULT_RUBY_VERSION }}
# bundler-cache: true
# - run: ./dev/ci/setup-host ${{ matrix.integration.label }}
# - run: ./dev/ci/run-tests-with-docker ${{ matrix.integration.label }}
# if: matrix.os == 'ubuntu-latest'
# - run: ./dev/ci/run-tests-natively ${{ matrix.integration.label }}
# if: matrix.os == 'macos-latest'
# - run: ls -R buildout
# - uses: actions/upload-artifact@v4
# with:
# name: ${{ matrix.integration.label }}-${{ matrix.os }}
# path: 'buildout/testlogs/*'
# language:
# name: '${{ matrix.lang.name }} unit tests on ${{ matrix.os }}'
# strategy:
# fail-fast: false
# matrix:
# lang:
# - name: 'Node.js'
# label: 'nodejs'
# - name: 'Ruby'
# label: 'ruby'
# os:
# - macos-latest
# - ubuntu-latest
# runs-on: ${{ matrix.os }}
# steps:
# - uses: actions/checkout@v4
# with:
# submodules: true
# - uses: ruby/setup-ruby@v1
# with:
# ruby-version: ${{ env.DEFAULT_RUBY_VERSION }}
# bundler-cache: true
# - run: ./dev/ci/setup-host ${{ matrix.lang.label }}
# - run: ./dev/ci/run-tests-with-docker ${{ matrix.lang.label }}
# if: matrix.os == 'ubuntu-latest'
# - run: ./dev/ci/run-tests-natively ${{ matrix.lang.label }}
# if: matrix.os == 'macos-latest'
# - run: ls -R buildout
# - uses: actions/upload-artifact@v4
# with:
# name: ${{ matrix.lang.label }}-${{ matrix.os }}
# path: 'buildout/testlogs/*'
# homebrew_packaging:
# name: 'Homebrew packaging unit tests'
# runs-on: macos-latest
# env:
# GEM_HOME: ${{ github.workspace }}/.gem
# steps:
# - uses: actions/checkout@v4
# with:
# submodules: true
# - run: ./dev/ci/setup-host homebrew-packaging
# - run: ./dev/ci/run-tests-natively homebrew-packaging
# - run: ls -R buildout
# - uses: actions/upload-artifact@v4
# with:
# name: homebrew-${{ matrix.os }}
# path: 'buildout/testlogs/*'
# source_packaging:
# name: 'Source packaging unit tests'
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# with:
# submodules: true
# - uses: ruby/setup-ruby@v1
# with:
# ruby-version: ${{ env.DEFAULT_RUBY_VERSION }}
# bundler-cache: true
# - run: ./dev/ci/setup-host source-packaging
# - run: ./dev/ci/run-tests-with-docker source-packaging
# - run: ls -R buildout
# - uses: actions/upload-artifact@v4
# with:
# name: source-packaging-${{ matrix.os }}
# path: 'buildout/testlogs/*'