diff --git a/.ci-dockerfiles/cross-armhf/Dockerfile b/.ci-dockerfiles/cross-armhf/Dockerfile index e491ef6467..711f81866e 100644 --- a/.ci-dockerfiles/cross-armhf/Dockerfile +++ b/.ci-dockerfiles/cross-armhf/Dockerfile @@ -1,4 +1,4 @@ -FROM ponylang/ponyc-ci-x86-64-unknown-linux-ubuntu20.04-builder:20230115 +FROM ponylang/ponyc-ci-x86-64-unknown-linux-ubuntu20.04-builder:20230807 ARG CROSS_TRIPLE=arm-unknown-linux-gnueabihf ARG CROSS_CC=arm-linux-gnueabihf-gcc diff --git a/.cirrus.yml b/.cirrus.yml index 5057b540da..3ee43254d0 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -144,37 +144,6 @@ task: release_test_script: - ps: .\make.ps1 -Command test -Config Release -Uselldb yes -task: - only_if: $CIRRUS_PR != '' - - container: - image: ponylang/ponyc-ci-cross-armhf:20230115 - cpu: 8 - memory: 6 - - environment: - IMAGE: ponylang/ponyc-ci-cross-armhf:20230115 - - name: "armhf Linux glibc" - - libs_cache: - folder: build/libs - fingerprint_script: echo "`md5sum Makefile` `md5sum CMakeLists.txt` `md5sum lib/CMakeLists.txt` ${IMAGE}" - populate_script: make libs build_flags=-j8 - upload_caches: - - libs - - configure_script: - - make configure - build_script: - - make build - test_script: - - make test-ci usedebugger=lldb - libponyrt_cross_script: - - make cross-libponyrt CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ arch=armv7-a cross_cflags="-march=armv7-a -mtune=cortex-a9" cross_lflags="-O3;-march=arm" - test_stdlib_cross_script: - - make test-cross-ci PONYPATH=../armv7-a/release cross_triple=arm-unknown-linux-gnueabihf cross_arch=armv7-a cross_cpu=cortex-a9 cross_linker=arm-linux-gnueabihf-gcc cross_runner="qemu-arm-static -cpu cortex-a9 -L /usr/local/arm-linux-gnueabihf/libc" - # # Nightly build tasks # diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 5900500e82..44008bd70c 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -226,3 +226,52 @@ jobs: run: make cross-libponyrt config=release CC=arm-linux-gnueabi-gcc CXX=arm-linux-gnueabi-g++ arch=armv7-a cross_cflags="-march=armv7-a -mtune=cortex-a9" cross_lflags="-O3;-march=arm" - name: Test with Release Cross-Compiled Runtime run: make test-cross-ci config=release PONYPATH=../armv7-a/release cross_triple=arm-unknown-linux-gnueabi cross_arch=armv7-a cross_cpu=cortex-a9 cross_linker=arm-linux-gnueabi-gcc cross_runner="qemu-arm-static -cpu cortex-a9 -L /usr/local/arm-linux-gnueabi/libc" + + armhf-linux: + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + include: + - image: ponylang/ponyc-ci-cross-armhf:20230809 + name: armhf Linux glibc + + name: ${{ matrix.name }} + container: + image: ${{ matrix.image }} + options: --user pony --cap-add=SYS_PTRACE --security-opt seccomp=unconfined + steps: + - name: Checkout + uses: actions/checkout@v3 + - 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: Configure Debug Runtime + run: make configure config=debug + - name: Build Debug Runtime + run: make build config=debug + - name: Build Debug Cross-Compiled Runtime + run: make cross-libponyrt config=debug CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ arch=armv7-a cross_cflags="-march=armv7-a -mtune=cortex-a9" cross_lflags="-O3;-march=arm" + - name: Test with Debug Cross-Compiled Runtime + run: make test-cross-ci config=debug PONYPATH=../armv7-a/debug cross_triple=arm-unknown-linux-gnueabihf cross_arch=armv7-a cross_cpu=cortex-a9 cross_linker=arm-linux-gnueabihf-gcc cross_runner="qemu-arm-static -cpu cortex-a9 -L /usr/local/arm-linux-gnueabihf/libc" + - name: Configure Release Runtime + run: make configure config=release + - name: Build Release Runtime + run: make build config=release + - name: Build Release Cross-Compiled Runtime + run: make cross-libponyrt config=release CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ arch=armv7-a cross_cflags="-march=armv7-a -mtune=cortex-a9" cross_lflags="-O3;-march=arm" + - name: Test with Release Cross-Compiled Runtime + run: make test-cross-ci config=release PONYPATH=../armv7-a/release cross_triple=arm-unknown-linux-gnueabihf cross_arch=armv7-a cross_cpu=cortex-a9 cross_linker=arm-linux-gnueabihf-gcc cross_runner="qemu-arm-static -cpu cortex-a9 -L /usr/local/arm-linux-gnueabihf/libc" diff --git a/.github/workflows/update-lib-cache.yml b/.github/workflows/update-lib-cache.yml index 9f6951d6a1..0bd8872b95 100644 --- a/.github/workflows/update-lib-cache.yml +++ b/.github/workflows/update-lib-cache.yml @@ -19,6 +19,7 @@ jobs: - image: ponylang/ponyc-ci-x86-64-unknown-linux-musl-builder:20230808 - image: ponylang/ponyc-ci-cross-riscv64:20230808 - image: ponylang/ponyc-ci-cross-arm:20230809 + - image: ponylang/ponyc-ci-cross-armhf:20230809 name: ${{ matrix.image }} container: