-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Open
Labels
kind/bugSomething isn't workingSomething isn't working
Description
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
Link to GitHub repository
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/[email protected]
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
Metadata
Metadata
Assignees
Labels
kind/bugSomething isn't workingSomething isn't working