[GH-ISSUE #5903] gcc fatal errors when using act #1281

Open
opened 2026-03-01 21:50:08 +03:00 by kerem · 0 comments
Owner

Originally created by @thirtytwobits on GitHub (Aug 15, 2025).
Original GitHub issue: https://github.com/nektos/act/issues/5903

Bug report info

act version:            0.2.80
GOOS:                   darwin
GOARCH:                 arm64
NumCPU:                 16
Docker host:            DOCKER_HOST environment variable is not set
Sockets found:
	/var/run/docker.sock
	$HOME/.docker/run/docker.sock
Config files:
	/Users/thirtytwobits/Library/Application Support/act/actrc:
		-P ubuntu-latest=catthehacker/ubuntu:full-latest
		-P ubuntu-22.04=catthehacker/ubuntu:full-22.04
		-P ubuntu-20.04=catthehacker/ubuntu:full-20.04
		-P ubuntu-18.04=catthehacker/ubuntu:full-18.04
Build info:
	Go version:            go1.24.5
	Module path:           command-line-arguments
	Main version:
	Main path:
	Main checksum:
	Build settings:
		-buildmode:           exe
		-compiler:            gc
		-ldflags:             -X main.version=0.2.80
		CGO_ENABLED:          1
		CGO_CFLAGS:
		CGO_CPPFLAGS:
		CGO_CXXFLAGS:
		CGO_LDFLAGS:
		GOARCH:               arm64
		GOOS:                 darwin
		GOARM64:              v8.0
Docker Engine:
	Engine version:        28.3.2
	Engine runtime:        runc
	Cgroup version:        2
	Cgroup driver:         cgroupfs
	Storage driver:        overlayfs
	Registry URI:          https://index.docker.io/v1/
	OS:                    Docker Desktop
	OS type:               linux
	OS version:
	OS arch:               aarch64
	OS kernel:             6.10.14-linuxkit
	OS CPU:                16
	OS memory:             32750 MB
	Security options:
		name=seccomp,profile=builtin
		name=cgroupns

Command used with act

act -v -j verification-arm64 release
act -v -j verification-amd64 release
act -v -j verification-arm64 release --container-architecture linux/amd64
act -v -j verification-amd64 release --container-architecture linux/amd64
act -v -j verification-arm64 release --container-architecture linux/arm64
act -v -j verification-amd64 release --container-architecture linux/arm64

Describe issue

I'm trying to use act to run our workflows which make use of build containers our project manages. The project is CETL (part of open cyphal) and the build containers are defined in our docker_toolchains repository.

On my M3 Max laptop I can manually run our build containers and build everything just fine. Using the exact same repository, Docker desktop instance, and everything; when I try to use act gcc crashes inexplicably?

| FAILED: suites/unittest/CMakeFiles/test_pf17_variant_ctor_3__googletest_objlib.dir/Release/test_pf17_variant_ctor_3.cpp.o
| /usr/bin/g++ -DCETL_ENABLE_DEBUG_ASSERT=0 -DCETL_VERSION=\"0.0.0\" -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_FAST -DCMAKE_INTDIR=\"Release\" -I/Users/thirtytwobits/workspace/github/thirtytwobits/CETL/cetlvast/include -I/Users/thirtytwobits/workspace/github/thirtytwobits/CETL/include -I/Users/thirtytwobits/workspace/github/thirtytwobits/CETL/cetlvast/build_external/o1heap/o1heap -isystem /Users/thirtytwobits/workspace/github/thirtytwobits/CETL/cetlvast/build_external/googletest/googletest/include -isystem /Users/thirtytwobits/workspace/github/thirtytwobits/CETL/cetlvast/build_external/googletest/googletest -isystem /Users/thirtytwobits/workspace/github/thirtytwobits/CETL/cetlvast/build_external/googletest/googlemock/include -isystem /Users/thirtytwobits/workspace/github/thirtytwobits/CETL/cetlvast/build_external/googletest/googlemock -O3 -DNDEBUG -std=c++17 -pedantic -Wall -Wextra -Werror -Wfloat-equal -Wconversion -Wunused-parameter -Wunused-variable -Wunused-value -Wcast-align -Wmissing-declarations -Wmissing-field-initializers -Wdouble-promotion -Wswitch-enum -Wtype-limits -Wno-error=array-bounds -O3 -fno-delete-null-pointer-checks -Wsign-conversion -Wsign-promo -Wold-style-cast -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Woverloaded-virtual -MD -MT suites/unittest/CMakeFiles/test_pf17_variant_ctor_3__googletest_objlib.dir/Release/test_pf17_variant_ctor_3.cpp.o -MF suites/unittest/CMakeFiles/test_pf17_variant_ctor_3__googletest_objlib.dir/Release/test_pf17_variant_ctor_3.cpp.o.d -o suites/unittest/CMakeFiles/test_pf17_variant_ctor_3__googletest_objlib.dir/Release/test_pf17_variant_ctor_3.cpp.o -c /Users/thirtytwobits/workspace/github/thirtytwobits/CETL/cetlvast/suites/unittest/test_pf17_variant_ctor_3.cpp
| g++: fatal error: Killed signal terminated program cc1plus
| compilation terminated.
[7/179] Building CXX object suites/unittest/CMakeFiles/test_pf17_variant_assignment_2__googletest_objlib.dir/Release/test_pf17_variant_assignment_2.cpp.o

The only way this could happen is if act wasn't using the containers we specify in our action.yaml. For example:

    runs-on: ubuntu-latest
    container: ghcr.io/opencyphal/toolshed:ts24.4.3

No response

Workflow content

name: "CETLVaSt"

on:
  push: # Further filtering is done in the jobs.
  pull_request:
    branches:
      - main
      - "issue/*"
  release:
    types: [published]
  workflow_dispatch:

jobs:
  cache-warmup:
    if: >
      github.event_name == 'release' ||
      github.event_name == 'workflow_dispatch' ||
      contains(github.event.head_commit.message, '#verification') ||
      contains(github.event.head_commit.message, '#docs') ||
      contains(github.ref, '/main') ||
      contains(github.ref, '/issue/') ||
      (github.event_name == 'pull_request')
    runs-on: ubuntu-latest
    container: ghcr.io/opencyphal/toolshed:ts24.4.3
    steps:
      - uses: actions/checkout@v4
      - name: Cache ext modules
        id: cetlvast-ext
        uses: actions/cache@v4
        with:
          path: cetlvast/build_external
          key: build-external-${{ hashFiles('**/cetlvast/cmake/modules/ExternalDependencies*.cmake.in') }}-${{ hashFiles('**/cetlvast/cmake/modules/patches/*.patch') }}
      - name: simple-build-online
        working-directory: cetlvast
        if: steps.cetlvast-ext.outputs.cache-hit != 'true'
        run: cmake --workflow --preset manual-simple-workflow-online

  verification-amd64:
    if: >
      github.event_name == 'release' ||
      github.event_name == 'workflow_dispatch' ||
      contains(github.event.head_commit.message, '#verification') ||
      contains(github.ref, '/main') ||
      contains(github.ref, '/issue/') ||
      (github.event_name == 'pull_request')
    runs-on: ubuntu-latest
    container: ghcr.io/opencyphal/toolshed:ts24.4.3
    needs:
      - cache-warmup
    strategy:
      matrix:
        toolchain: ["gcc-native-32", "clang-native"]
        standard: ["cpp-14", "cpp-17", "cpp-20", "cpp-23"]
    steps:
      - uses: actions/checkout@v4
      - name: Cache ext modules
        uses: actions/cache@v4
        with:
          path: cetlvast/build_external
          key: build-external-${{ hashFiles('**/cetlvast/cmake/modules/ExternalDependencies*.cmake.in') }}-${{ hashFiles('**/cetlvast/cmake/modules/patches/*.patch') }}
          fail-on-cache-miss: true
      - name: run tests
        working-directory: cetlvast
        env:
          GTEST_COLOR: yes
        run: >
          cmake --workflow --preset workflow-${{ matrix.toolchain }}-${{ matrix.standard }}-offline
      - name: upload-artifacts
        uses: actions/upload-artifact@v4
        with:
          name: ${{ matrix.toolchain }}-${{ matrix.standard }}-amd64
          path: |
            cetlvast/build/compile_commands.json
            cetlvast/build/*/**/coverage.xml
            cetlvast/build/*/**/*-sonarqube.xml
            cetlvast/build/*/**/gcovr_html/*.*
          if-no-files-found: error

  verification-arm64:
    if: >
      github.event_name == 'release' ||
      github.event_name == 'workflow_dispatch' ||
      contains(github.event.head_commit.message, '#verification') ||
      contains(github.ref, '/main') ||
      contains(github.ref, '/issue/') ||
      (github.event_name == 'pull_request')
    runs-on: ubuntu-24.04-arm
    container: ghcr.io/opencyphal/toolshed:ts24.4.3
    needs:
      - cache-warmup
    strategy:
      matrix:
        toolchain: ["gcc-native", "clang-native"]
        standard: ["cpp-14", "cpp-17", "cpp-20"]
    steps:
      - uses: actions/checkout@v4
      - name: Cache ext modules
        uses: actions/cache@v4
        with:
          path: cetlvast/build_external
          key: build-external-${{ hashFiles('**/cetlvast/cmake/modules/ExternalDependencies*.cmake.in') }}-${{ hashFiles('**/cetlvast/cmake/modules/patches/*.patch') }}
          fail-on-cache-miss: true
      - name: run tests
        working-directory: cetlvast
        env:
          GTEST_COLOR: yes
        run: >
          cmake --workflow --preset workflow-${{ matrix.toolchain }}-${{ matrix.standard }}-offline
      - name: upload-artifacts
        uses: actions/upload-artifact@v4
        with:
          name: ${{ matrix.toolchain }}-${{ matrix.standard }}-arm64
          path: |
            cetlvast/build/compile_commands.json
            cetlvast/build/*/**/coverage.xml
            cetlvast/build/*/**/*-sonarqube.xml
            cetlvast/build/*/**/gcovr_html/*.*
          if-no-files-found: error

  docs:
    if: >
      github.event_name == 'release' ||
      github.event_name == 'workflow_dispatch' ||
      contains(github.event.head_commit.message, '#docs') ||
      contains(github.ref, '/main') ||
      contains(github.ref, '/issue/') ||
      (github.event_name == 'pull_request')
    runs-on: ubuntu-latest
    container: ghcr.io/opencyphal/toolshed:ts24.4.3
    needs:
      - cache-warmup
    steps:
      - uses: actions/checkout@v4
      - name: Cache ext modules
        uses: actions/cache@v4
        with:
          path: cetlvast/build_external
          key: build-external-${{ hashFiles('**/cetlvast/cmake/modules/ExternalDependencies*.cmake.in') }}-${{ hashFiles('**/cetlvast/cmake/modules/patches/*.patch') }}
          fail-on-cache-miss: true
      - name: doc-gen-configure
        working-directory: cetlvast
        run: cmake --preset configure-gcc-native-cpp-14-offline
      - name: doc-gen-build
        working-directory: cetlvast/build
        run: ninja docs
      - name: Setup Pages
        if: ${{ github.event_name != 'pull_request' }}
        uses: actions/configure-pages@v5
      - name: Upload docs
        if: ${{ github.event_name != 'pull_request' }}
        uses: actions/upload-pages-artifact@v3
        with:
          path: "cetlvast/build/suites/docs/html/"

  sonarqube:
    if: >
      (github.event_name == 'release' && !github.event.release.prerelease) ||
      github.event_name == 'workflow_dispatch' ||
      contains(github.event.head_commit.message, '#sonar') ||
      contains(github.ref, '/main') ||
      contains(github.ref, '/issue/') ||
      (github.event_name == 'pull_request')
    needs:
      - cache-warmup
    runs-on: ubuntu-latest
    container: ghcr.io/opencyphal/toolshed:ts24.4.3
    env:
      GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis by sonarqube.
      - name: Cache ext modules
        uses: actions/cache@v4
        with:
          path: cetlvast/build_external
          key: build-external-${{ hashFiles('**/cetlvast/cmake/modules/ExternalDependencies*.cmake.in') }}-${{ hashFiles('**/cetlvast/cmake/modules/patches/*.patch') }}
          fail-on-cache-miss: true
      - name: Check for SONAR_TOKEN
        if: ${{ env.SONAR_TOKEN == '' && github.event_name == 'pull_request' }}
        run: echo "::notice file=cetlvast.yml,line=188,col=8,endColumn=80,title=No-Sonar::SONAR_TOKEN is not available for pull requests from external repositories."
      - name: Check for SONAR_TOKEN
        if: ${{ env.SONAR_TOKEN == '' && github.event_name != 'pull_request' }}
        run: echo "::error file=cetlvast.yml,line=191,col=8,endColumn=80,title=SONAR_TOKEN-missing::SONAR_TOKEN was empty or not found."
      - name: Run build for sonar-scanner
        if: ${{ env.SONAR_TOKEN != '' }}
        working-directory: cetlvast
        run: cmake --preset configure-gcc-native-cpp-14-offline
      - name: SonarQube Scan
        uses: SonarSource/sonarqube-scan-action@v5.3.0
        with:
          args: >
            -Dsonar.organization=opencyphal
            -Dsonar.projectKey=OpenCyphal_CETL
            -Dsonar.verbose=true
            -Dsonar.cfamily.compile-commands=cetlvast/build/compile_commands.json

  deploy-docs:
    if: >
      (github.event_name == 'release' && !github.event.release.prerelease) ||
      github.event_name == 'workflow_dispatch'
    needs:
      - sonarqube
      - docs
    # Grant GITHUB_TOKEN the permissions required to make a Pages deployment
    permissions:
      contents: read
      pages: write # to deploy to Pages
      id-token: write # to verify the deployment originates from an appropriate source

    # Deploy to the github-pages environment
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}

    # Specify runner + deployment step
    runs-on: ubuntu-latest
    steps:
      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v4

Relevant log output

| FAILED: suites/unittest/CMakeFiles/test_pf17_variant_ctor_3__googletest_objlib.dir/Release/test_pf17_variant_ctor_3.cpp.o
| /usr/bin/g++ -DCETL_ENABLE_DEBUG_ASSERT=0 -DCETL_VERSION=\"0.0.0\" -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_FAST -DCMAKE_INTDIR=\"Release\" -I/Users/thirtytwobits/workspace/github/thirtytwobits/CETL/cetlvast/include -I/Users/thirtytwobits/workspace/github/thirtytwobits/CETL/include -I/Users/thirtytwobits/workspace/github/thirtytwobits/CETL/cetlvast/build_external/o1heap/o1heap -isystem /Users/thirtytwobits/workspace/github/thirtytwobits/CETL/cetlvast/build_external/googletest/googletest/include -isystem /Users/thirtytwobits/workspace/github/thirtytwobits/CETL/cetlvast/build_external/googletest/googletest -isystem /Users/thirtytwobits/workspace/github/thirtytwobits/CETL/cetlvast/build_external/googletest/googlemock/include -isystem /Users/thirtytwobits/workspace/github/thirtytwobits/CETL/cetlvast/build_external/googletest/googlemock -O3 -DNDEBUG -std=c++17 -pedantic -Wall -Wextra -Werror -Wfloat-equal -Wconversion -Wunused-parameter -Wunused-variable -Wunused-value -Wcast-align -Wmissing-declarations -Wmissing-field-initializers -Wdouble-promotion -Wswitch-enum -Wtype-limits -Wno-error=array-bounds -O3 -fno-delete-null-pointer-checks -Wsign-conversion -Wsign-promo -Wold-style-cast -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Woverloaded-virtual -MD -MT suites/unittest/CMakeFiles/test_pf17_variant_ctor_3__googletest_objlib.dir/Release/test_pf17_variant_ctor_3.cpp.o -MF suites/unittest/CMakeFiles/test_pf17_variant_ctor_3__googletest_objlib.dir/Release/test_pf17_variant_ctor_3.cpp.o.d -o suites/unittest/CMakeFiles/test_pf17_variant_ctor_3__googletest_objlib.dir/Release/test_pf17_variant_ctor_3.cpp.o -c /Users/thirtytwobits/workspace/github/thirtytwobits/CETL/cetlvast/suites/unittest/test_pf17_variant_ctor_3.cpp
| g++: fatal error: Killed signal terminated program cc1plus
| compilation terminated.
[7/179] Building CXX object suites/unittest/CMakeFiles/test_pf17_variant_assignment_2__googletest_objlib.dir/Release/test_pf17_variant_assignment_2.cpp.o

Additional information

No response

Originally created by @thirtytwobits on GitHub (Aug 15, 2025). Original GitHub issue: https://github.com/nektos/act/issues/5903 ### Bug report info ```plain text act version: 0.2.80 GOOS: darwin GOARCH: arm64 NumCPU: 16 Docker host: DOCKER_HOST environment variable is not set Sockets found: /var/run/docker.sock $HOME/.docker/run/docker.sock Config files: /Users/thirtytwobits/Library/Application Support/act/actrc: -P ubuntu-latest=catthehacker/ubuntu:full-latest -P ubuntu-22.04=catthehacker/ubuntu:full-22.04 -P ubuntu-20.04=catthehacker/ubuntu:full-20.04 -P ubuntu-18.04=catthehacker/ubuntu:full-18.04 Build info: Go version: go1.24.5 Module path: command-line-arguments Main version: Main path: Main checksum: Build settings: -buildmode: exe -compiler: gc -ldflags: -X main.version=0.2.80 CGO_ENABLED: 1 CGO_CFLAGS: CGO_CPPFLAGS: CGO_CXXFLAGS: CGO_LDFLAGS: GOARCH: arm64 GOOS: darwin GOARM64: v8.0 Docker Engine: Engine version: 28.3.2 Engine runtime: runc Cgroup version: 2 Cgroup driver: cgroupfs Storage driver: overlayfs Registry URI: https://index.docker.io/v1/ OS: Docker Desktop OS type: linux OS version: OS arch: aarch64 OS kernel: 6.10.14-linuxkit OS CPU: 16 OS memory: 32750 MB Security options: name=seccomp,profile=builtin name=cgroupns ``` ### Command used with act ```sh act -v -j verification-arm64 release act -v -j verification-amd64 release act -v -j verification-arm64 release --container-architecture linux/amd64 act -v -j verification-amd64 release --container-architecture linux/amd64 act -v -j verification-arm64 release --container-architecture linux/arm64 act -v -j verification-amd64 release --container-architecture linux/arm64 ``` ### Describe issue I'm trying to use act to run our workflows which make use of build containers our project manages. The project is [CETL](https://github.com/openCyphal/cetl) (part of [open cyphal](https://opencyphal.org/)) and the build containers are defined in our [docker_toolchains](https://github.com/openCyphal/docker_toolchains) repository. On my M3 Max laptop I can manually run our build containers and build everything just fine. Using the exact same repository, Docker desktop instance, and everything; when I try to use act gcc crashes inexplicably? ``` | FAILED: suites/unittest/CMakeFiles/test_pf17_variant_ctor_3__googletest_objlib.dir/Release/test_pf17_variant_ctor_3.cpp.o | /usr/bin/g++ -DCETL_ENABLE_DEBUG_ASSERT=0 -DCETL_VERSION=\"0.0.0\" -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_FAST -DCMAKE_INTDIR=\"Release\" -I/Users/thirtytwobits/workspace/github/thirtytwobits/CETL/cetlvast/include -I/Users/thirtytwobits/workspace/github/thirtytwobits/CETL/include -I/Users/thirtytwobits/workspace/github/thirtytwobits/CETL/cetlvast/build_external/o1heap/o1heap -isystem /Users/thirtytwobits/workspace/github/thirtytwobits/CETL/cetlvast/build_external/googletest/googletest/include -isystem /Users/thirtytwobits/workspace/github/thirtytwobits/CETL/cetlvast/build_external/googletest/googletest -isystem /Users/thirtytwobits/workspace/github/thirtytwobits/CETL/cetlvast/build_external/googletest/googlemock/include -isystem /Users/thirtytwobits/workspace/github/thirtytwobits/CETL/cetlvast/build_external/googletest/googlemock -O3 -DNDEBUG -std=c++17 -pedantic -Wall -Wextra -Werror -Wfloat-equal -Wconversion -Wunused-parameter -Wunused-variable -Wunused-value -Wcast-align -Wmissing-declarations -Wmissing-field-initializers -Wdouble-promotion -Wswitch-enum -Wtype-limits -Wno-error=array-bounds -O3 -fno-delete-null-pointer-checks -Wsign-conversion -Wsign-promo -Wold-style-cast -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Woverloaded-virtual -MD -MT suites/unittest/CMakeFiles/test_pf17_variant_ctor_3__googletest_objlib.dir/Release/test_pf17_variant_ctor_3.cpp.o -MF suites/unittest/CMakeFiles/test_pf17_variant_ctor_3__googletest_objlib.dir/Release/test_pf17_variant_ctor_3.cpp.o.d -o suites/unittest/CMakeFiles/test_pf17_variant_ctor_3__googletest_objlib.dir/Release/test_pf17_variant_ctor_3.cpp.o -c /Users/thirtytwobits/workspace/github/thirtytwobits/CETL/cetlvast/suites/unittest/test_pf17_variant_ctor_3.cpp | g++: fatal error: Killed signal terminated program cc1plus | compilation terminated. [7/179] Building CXX object suites/unittest/CMakeFiles/test_pf17_variant_assignment_2__googletest_objlib.dir/Release/test_pf17_variant_assignment_2.cpp.o ``` The only way this could happen is if act wasn't using the containers we specify in our action.yaml. For example: ```yaml runs-on: ubuntu-latest container: ghcr.io/opencyphal/toolshed:ts24.4.3 ``` ### Link to GitHub repository _No response_ ### Workflow content ```yml name: "CETLVaSt" on: push: # Further filtering is done in the jobs. pull_request: branches: - main - "issue/*" release: types: [published] workflow_dispatch: jobs: cache-warmup: if: > github.event_name == 'release' || github.event_name == 'workflow_dispatch' || contains(github.event.head_commit.message, '#verification') || contains(github.event.head_commit.message, '#docs') || contains(github.ref, '/main') || contains(github.ref, '/issue/') || (github.event_name == 'pull_request') runs-on: ubuntu-latest container: ghcr.io/opencyphal/toolshed:ts24.4.3 steps: - uses: actions/checkout@v4 - name: Cache ext modules id: cetlvast-ext uses: actions/cache@v4 with: path: cetlvast/build_external key: build-external-${{ hashFiles('**/cetlvast/cmake/modules/ExternalDependencies*.cmake.in') }}-${{ hashFiles('**/cetlvast/cmake/modules/patches/*.patch') }} - name: simple-build-online working-directory: cetlvast if: steps.cetlvast-ext.outputs.cache-hit != 'true' run: cmake --workflow --preset manual-simple-workflow-online verification-amd64: if: > github.event_name == 'release' || github.event_name == 'workflow_dispatch' || contains(github.event.head_commit.message, '#verification') || contains(github.ref, '/main') || contains(github.ref, '/issue/') || (github.event_name == 'pull_request') runs-on: ubuntu-latest container: ghcr.io/opencyphal/toolshed:ts24.4.3 needs: - cache-warmup strategy: matrix: toolchain: ["gcc-native-32", "clang-native"] standard: ["cpp-14", "cpp-17", "cpp-20", "cpp-23"] steps: - uses: actions/checkout@v4 - name: Cache ext modules uses: actions/cache@v4 with: path: cetlvast/build_external key: build-external-${{ hashFiles('**/cetlvast/cmake/modules/ExternalDependencies*.cmake.in') }}-${{ hashFiles('**/cetlvast/cmake/modules/patches/*.patch') }} fail-on-cache-miss: true - name: run tests working-directory: cetlvast env: GTEST_COLOR: yes run: > cmake --workflow --preset workflow-${{ matrix.toolchain }}-${{ matrix.standard }}-offline - name: upload-artifacts uses: actions/upload-artifact@v4 with: name: ${{ matrix.toolchain }}-${{ matrix.standard }}-amd64 path: | cetlvast/build/compile_commands.json cetlvast/build/*/**/coverage.xml cetlvast/build/*/**/*-sonarqube.xml cetlvast/build/*/**/gcovr_html/*.* if-no-files-found: error verification-arm64: if: > github.event_name == 'release' || github.event_name == 'workflow_dispatch' || contains(github.event.head_commit.message, '#verification') || contains(github.ref, '/main') || contains(github.ref, '/issue/') || (github.event_name == 'pull_request') runs-on: ubuntu-24.04-arm container: ghcr.io/opencyphal/toolshed:ts24.4.3 needs: - cache-warmup strategy: matrix: toolchain: ["gcc-native", "clang-native"] standard: ["cpp-14", "cpp-17", "cpp-20"] steps: - uses: actions/checkout@v4 - name: Cache ext modules uses: actions/cache@v4 with: path: cetlvast/build_external key: build-external-${{ hashFiles('**/cetlvast/cmake/modules/ExternalDependencies*.cmake.in') }}-${{ hashFiles('**/cetlvast/cmake/modules/patches/*.patch') }} fail-on-cache-miss: true - name: run tests working-directory: cetlvast env: GTEST_COLOR: yes run: > cmake --workflow --preset workflow-${{ matrix.toolchain }}-${{ matrix.standard }}-offline - name: upload-artifacts uses: actions/upload-artifact@v4 with: name: ${{ matrix.toolchain }}-${{ matrix.standard }}-arm64 path: | cetlvast/build/compile_commands.json cetlvast/build/*/**/coverage.xml cetlvast/build/*/**/*-sonarqube.xml cetlvast/build/*/**/gcovr_html/*.* if-no-files-found: error docs: if: > github.event_name == 'release' || github.event_name == 'workflow_dispatch' || contains(github.event.head_commit.message, '#docs') || contains(github.ref, '/main') || contains(github.ref, '/issue/') || (github.event_name == 'pull_request') runs-on: ubuntu-latest container: ghcr.io/opencyphal/toolshed:ts24.4.3 needs: - cache-warmup steps: - uses: actions/checkout@v4 - name: Cache ext modules uses: actions/cache@v4 with: path: cetlvast/build_external key: build-external-${{ hashFiles('**/cetlvast/cmake/modules/ExternalDependencies*.cmake.in') }}-${{ hashFiles('**/cetlvast/cmake/modules/patches/*.patch') }} fail-on-cache-miss: true - name: doc-gen-configure working-directory: cetlvast run: cmake --preset configure-gcc-native-cpp-14-offline - name: doc-gen-build working-directory: cetlvast/build run: ninja docs - name: Setup Pages if: ${{ github.event_name != 'pull_request' }} uses: actions/configure-pages@v5 - name: Upload docs if: ${{ github.event_name != 'pull_request' }} uses: actions/upload-pages-artifact@v3 with: path: "cetlvast/build/suites/docs/html/" sonarqube: if: > (github.event_name == 'release' && !github.event.release.prerelease) || github.event_name == 'workflow_dispatch' || contains(github.event.head_commit.message, '#sonar') || contains(github.ref, '/main') || contains(github.ref, '/issue/') || (github.event_name == 'pull_request') needs: - cache-warmup runs-on: ubuntu-latest container: ghcr.io/opencyphal/toolshed:ts24.4.3 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} steps: - uses: actions/checkout@v4 with: fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis by sonarqube. - name: Cache ext modules uses: actions/cache@v4 with: path: cetlvast/build_external key: build-external-${{ hashFiles('**/cetlvast/cmake/modules/ExternalDependencies*.cmake.in') }}-${{ hashFiles('**/cetlvast/cmake/modules/patches/*.patch') }} fail-on-cache-miss: true - name: Check for SONAR_TOKEN if: ${{ env.SONAR_TOKEN == '' && github.event_name == 'pull_request' }} run: echo "::notice file=cetlvast.yml,line=188,col=8,endColumn=80,title=No-Sonar::SONAR_TOKEN is not available for pull requests from external repositories." - name: Check for SONAR_TOKEN if: ${{ env.SONAR_TOKEN == '' && github.event_name != 'pull_request' }} run: echo "::error file=cetlvast.yml,line=191,col=8,endColumn=80,title=SONAR_TOKEN-missing::SONAR_TOKEN was empty or not found." - name: Run build for sonar-scanner if: ${{ env.SONAR_TOKEN != '' }} working-directory: cetlvast run: cmake --preset configure-gcc-native-cpp-14-offline - name: SonarQube Scan uses: SonarSource/sonarqube-scan-action@v5.3.0 with: args: > -Dsonar.organization=opencyphal -Dsonar.projectKey=OpenCyphal_CETL -Dsonar.verbose=true -Dsonar.cfamily.compile-commands=cetlvast/build/compile_commands.json deploy-docs: if: > (github.event_name == 'release' && !github.event.release.prerelease) || github.event_name == 'workflow_dispatch' needs: - sonarqube - docs # Grant GITHUB_TOKEN the permissions required to make a Pages deployment permissions: contents: read pages: write # to deploy to Pages id-token: write # to verify the deployment originates from an appropriate source # Deploy to the github-pages environment environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} # Specify runner + deployment step runs-on: ubuntu-latest steps: - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v4 ``` ### Relevant log output ```sh | FAILED: suites/unittest/CMakeFiles/test_pf17_variant_ctor_3__googletest_objlib.dir/Release/test_pf17_variant_ctor_3.cpp.o | /usr/bin/g++ -DCETL_ENABLE_DEBUG_ASSERT=0 -DCETL_VERSION=\"0.0.0\" -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_FAST -DCMAKE_INTDIR=\"Release\" -I/Users/thirtytwobits/workspace/github/thirtytwobits/CETL/cetlvast/include -I/Users/thirtytwobits/workspace/github/thirtytwobits/CETL/include -I/Users/thirtytwobits/workspace/github/thirtytwobits/CETL/cetlvast/build_external/o1heap/o1heap -isystem /Users/thirtytwobits/workspace/github/thirtytwobits/CETL/cetlvast/build_external/googletest/googletest/include -isystem /Users/thirtytwobits/workspace/github/thirtytwobits/CETL/cetlvast/build_external/googletest/googletest -isystem /Users/thirtytwobits/workspace/github/thirtytwobits/CETL/cetlvast/build_external/googletest/googlemock/include -isystem /Users/thirtytwobits/workspace/github/thirtytwobits/CETL/cetlvast/build_external/googletest/googlemock -O3 -DNDEBUG -std=c++17 -pedantic -Wall -Wextra -Werror -Wfloat-equal -Wconversion -Wunused-parameter -Wunused-variable -Wunused-value -Wcast-align -Wmissing-declarations -Wmissing-field-initializers -Wdouble-promotion -Wswitch-enum -Wtype-limits -Wno-error=array-bounds -O3 -fno-delete-null-pointer-checks -Wsign-conversion -Wsign-promo -Wold-style-cast -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Woverloaded-virtual -MD -MT suites/unittest/CMakeFiles/test_pf17_variant_ctor_3__googletest_objlib.dir/Release/test_pf17_variant_ctor_3.cpp.o -MF suites/unittest/CMakeFiles/test_pf17_variant_ctor_3__googletest_objlib.dir/Release/test_pf17_variant_ctor_3.cpp.o.d -o suites/unittest/CMakeFiles/test_pf17_variant_ctor_3__googletest_objlib.dir/Release/test_pf17_variant_ctor_3.cpp.o -c /Users/thirtytwobits/workspace/github/thirtytwobits/CETL/cetlvast/suites/unittest/test_pf17_variant_ctor_3.cpp | g++: fatal error: Killed signal terminated program cc1plus | compilation terminated. [7/179] Building CXX object suites/unittest/CMakeFiles/test_pf17_variant_assignment_2__googletest_objlib.dir/Release/test_pf17_variant_assignment_2.cpp.o ``` ### Additional information _No response_
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/act#1281
No description provided.