-
-
Notifications
You must be signed in to change notification settings - Fork 418
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Move aarch64 from QEMU to native aarch64 machines
- Loading branch information
1 parent
e5fcce7
commit 8a647e1
Showing
5 changed files
with
96 additions
and
30 deletions.
There are no files selected for viewing
35 changes: 35 additions & 0 deletions
35
.ci-dockerfiles/aarch64-unknown-linux-ubuntu24.04-builder/Dockerfile
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
FROM ubuntu:24.04 | ||
|
||
# Keep annoying tzdata prompt from coming up | ||
# Thanks cmake! | ||
ENV DEBIAN_FRONTEND=noninteractive | ||
ENV DEBCONF_NONINTERACTIVE_SEEN=true | ||
|
||
RUN apt-get update \ | ||
&& apt-get install -y --no-install-recommends \ | ||
apt-transport-https \ | ||
build-essential \ | ||
clang \ | ||
cmake \ | ||
git \ | ||
libclang-rt-dev \ | ||
lldb \ | ||
make \ | ||
xz-utils \ | ||
zlib1g-dev \ | ||
curl \ | ||
python3-pip \ | ||
wget \ | ||
systemtap-sdt-dev \ | ||
&& rm -rf /var/lib/apt/lists/* \ | ||
&& apt-get -y autoremove --purge \ | ||
&& apt-get -y clean \ | ||
&& pip3 install --break-system-packages cloudsmith-cli | ||
|
||
# needed for GitHub actions | ||
RUN git config --global --add safe.directory /__w/ponyc/ponyc | ||
|
||
# add user pony in order to not run tests as root | ||
RUN useradd -u 1001 -ms /bin/bash -d /home/pony -g root pony | ||
USER pony | ||
WORKDIR /home/pony |
17 changes: 17 additions & 0 deletions
17
.ci-dockerfiles/aarch64-unknown-linux-ubuntu24.04-builder/build-and-push.bash
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
#!/bin/bash | ||
|
||
set -o errexit | ||
set -o nounset | ||
|
||
# | ||
# *** You should already be logged in to GHCR when you run this *** | ||
# | ||
|
||
NAME="ghcr.io/ponylang/ponyc-ci-aarch64-unknown-linux-ubuntu24.04-builder" | ||
TODAY=$(date +%Y%m%d) | ||
DOCKERFILE_DIR="$(dirname "$0")" | ||
BUILDER="aarch64-builder-$(date +%s)" | ||
|
||
docker buildx create --use --name "${BUILDER}" | ||
docker buildx build --platform linux/arm64 --pull -t "${NAME}:${TODAY}" --output "type=image,push=true" "${DOCKERFILE_DIR}" | ||
docker buildx stop "${BUILDER}" |
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -87,31 +87,26 @@ jobs: | |
content: ${{ github.server_url}}/${{ github.repository }}/actions/runs/${{ github.run_id }}failed. | ||
|
||
aarch64-linux: | ||
runs-on: ubuntu-latest | ||
runs-on: ubuntu-24.04-arm | ||
|
||
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 | ||
- image: ponyc-ci-aarch64-unknown-linux-ubuntu24.04-builder:20250118 | ||
name: aarch64-unknown-linux-ubuntu24.04 [release] | ||
target: test-cross-stress-release | ||
- image: ghcr.io/ponylang/ponyc-ci-cross-aarch64:20240427 | ||
target: test-stress-release | ||
debugger: lldb | ||
- image: ponyc-ci-aarch64-unknown-linux-ubuntu24.04-builder:20250118 | ||
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 | ||
target: test-stress-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/[email protected] | ||
|
@@ -132,12 +127,10 @@ jobs: | |
key: libs-${{ matrix.image }}-${{ hashFiles('Makefile', 'CMakeLists.txt', 'lib/CMakeLists.txt') }} | ||
- name: Build Debug Runtime | ||
run: | | ||
make configure config=debug | ||
make configure arch=armv8-a 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" | ||
run: make ${{ matrix.target }} config=debug usedebugger='${{ matrix.debugger }}' | ||
- name: Send alert on failure | ||
if: ${{ failure() }} | ||
uses: zulip/github-actions-zulip/send-message@e4c8f27c732ba9bd98ac6be0583096dea82feea5 | ||
|
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -24,7 +24,32 @@ jobs: | |
- image: ghcr.io/ponylang/ponyc-ci-cross-arm:20240427 | ||
- image: ghcr.io/ponylang/ponyc-ci-cross-armhf:20240427 | ||
- image: ghcr.io/ponylang/ponyc-ci-cross-riscv64:20240427 | ||
- image: ghcr.io/ponylang/ponyc-ci-cross-aarch64:20240427 | ||
|
||
name: ${{ matrix.image }} | ||
container: | ||
image: ${{ matrix.image }} | ||
options: --user pony | ||
steps: | ||
- name: Checkout | ||
uses: actions/[email protected] | ||
- name: Cache Libs | ||
id: cache-libs | ||
uses: actions/cache@v4 | ||
with: | ||
path: build/libs | ||
key: libs-${{ matrix.image }}-${{ hashFiles('Makefile', 'CMakeLists.txt', 'lib/CMakeLists.txt') }} | ||
- name: Build Libs | ||
if: steps.cache-libs.outputs.cache-hit != 'true' | ||
run: make libs build_flags=-j8 | ||
|
||
aarch64-linux: | ||
runs-on: ubuntu-24.04-arm | ||
|
||
strategy: | ||
fail-fast: false | ||
matrix: | ||
include: | ||
- image: ghcr.io/ponylang/ponyc-ci-aarch64-unknown-linux-ubuntu24.04-builder:20250118 | ||
|
||
name: ${{ matrix.image }} | ||
container: | ||
|