diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 95706e2ff..ddc68d76a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -7,7 +7,7 @@ jobs: runs-on: ubuntu-latest steps: - name: checkout - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: Install pcre2grep run: sudo apt-get update && sudo apt-get install -y pcre2-utils @@ -102,3 +102,17 @@ jobs: sep: / ext: .dso os: ubuntu-latest + + LinuxArm64: + strategy: + fail-fast: false + matrix: + haxe: [ latest ] # 4.3.7 doesn't have a linux arm build + uses: ./.github/workflows/test.yml + name: Test Linux (Arm64) + with: + haxe: ${{ matrix.haxe }} + arch: Arm64 + sep: / + ext: .dso + os: ubuntu-24.04-arm diff --git a/.github/workflows/setup/action.yml b/.github/workflows/setup/action.yml index 3b7dae26e..da24d4e35 100644 --- a/.github/workflows/setup/action.yml +++ b/.github/workflows/setup/action.yml @@ -3,6 +3,9 @@ inputs: haxe: required: true type: string + arch: + required: true + type: string runs: using: composite steps: @@ -20,7 +23,7 @@ runs: haxelib list - name: install native libraries - if: runner.os == 'Linux' + if: runner.os == 'Linux' && inputs.arch == 32 shell: pwsh run: | sudo apt-get update -qqy diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3eac4e98d..00386bd9f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -30,11 +30,12 @@ jobs: working-directory: test/haxe steps: - name: checkout - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: setup uses: ./.github/workflows/setup with: haxe: ${{ inputs.haxe }} + arch: ${{ inputs.arch }} - name: build run: haxe compile.hxml -D ${{ env.HXCPP_ARCH_FLAG }} - name: run @@ -48,11 +49,12 @@ jobs: working-directory: test/cffi steps: - name: checkout - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: setup uses: ./.github/workflows/setup with: haxe: ${{ inputs.haxe }} + arch: ${{ inputs.arch }} - name: build project working-directory: test/cffi/project run: haxelib run hxcpp build.xml -Ddebug -D${{ env.HXCPP_ARCH_FLAG }} @@ -88,11 +90,12 @@ jobs: working-directory: test/telemetry steps: - name: checkout - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: setup uses: ./.github/workflows/setup with: haxe: ${{ inputs.haxe }} + arch: ${{ inputs.arch }} - name: build run: haxe compile.hxml ${{ matrix.suffix }} -D ${{ env.HXCPP_ARCH_FLAG }} - name: run @@ -106,11 +109,12 @@ jobs: working-directory: test/debugger steps: - name: checkout - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: setup uses: ./.github/workflows/setup with: haxe: ${{ inputs.haxe }} + arch: ${{ inputs.arch }} - name: build run: haxe compile.hxml -D ${{ env.HXCPP_ARCH_FLAG }} - name: run @@ -124,11 +128,12 @@ jobs: working-directory: test/native steps: - name: checkout - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: setup uses: ./.github/workflows/setup with: haxe: ${{ inputs.haxe }} + arch: ${{ inputs.arch }} - name: build run: haxe compile.hxml -D ${{ env.HXCPP_ARCH_FLAG }} - name: run @@ -142,11 +147,12 @@ jobs: working-directory: test/std steps: - name: checkout - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: setup uses: ./.github/workflows/setup with: haxe: ${{ inputs.haxe }} + arch: ${{ inputs.arch }} - name: setup mariadb if: runner.os == 'Linux' run: | @@ -175,11 +181,12 @@ jobs: working-directory: test/cppia steps: - name: checkout - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: setup uses: ./.github/workflows/setup with: haxe: ${{ inputs.haxe }} + arch: ${{ inputs.arch }} - name: build host run: haxe compile-host.hxml -D ${{ env.HXCPP_ARCH_FLAG }} - name: build client @@ -195,11 +202,12 @@ jobs: working-directory: haxe/tests/unit steps: - name: checkout - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: setup uses: ./.github/workflows/setup with: haxe: ${{ inputs.haxe }} + arch: ${{ inputs.arch }} - name: Get Haxe commit SHA if: inputs.haxe == 'latest' id: haxe_sha @@ -217,14 +225,14 @@ jobs: echo "Commit SHA: $short_sha, Full SHA: $full_sha" - name: checkout haxe (latest) if: inputs.haxe == 'latest' - uses: actions/checkout@v4 + uses: actions/checkout@v7 with: ref: ${{ steps.haxe_sha.outputs.sha }} repository: HaxeFoundation/haxe path: haxe - name: checkout haxe (stable) if: inputs.haxe != 'latest' - uses: actions/checkout@v4 + uses: actions/checkout@v7 with: repository: HaxeFoundation/haxe path: haxe @@ -243,11 +251,12 @@ jobs: name: build tool tests steps: - name: checkout - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: setup uses: ./.github/workflows/setup with: haxe: ${{ inputs.haxe }} + arch: ${{ inputs.arch }} - name: test c/cxx_standard attributes working-directory: test/cxx_standard shell: bash @@ -265,10 +274,11 @@ jobs: working-directory: test/regression steps: - name: checkout - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: setup uses: ./.github/workflows/setup with: haxe: ${{ inputs.haxe }} + arch: ${{ inputs.arch }} - name: run run: haxe --run Run -D ${{ env.HXCPP_ARCH_FLAG }}