Skip to content

Commit 09785ee

Browse files
committed
Re-build the workflow
1 parent e07fb61 commit 09785ee

File tree

1 file changed

+129
-35
lines changed

1 file changed

+129
-35
lines changed

.github/workflows/main.yml

Lines changed: 129 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -254,55 +254,73 @@ jobs:
254254
env:
255255
ROBBOT_PASS: ${{ secrets.ROBBOT_PASS }}
256256

257-
linux-arm64:
258-
runs-on: ubuntu-20.04
259-
permissions:
260-
packages: write
257+
linux-arm64-build:
258+
runs-on: ubuntu-22.04-arm
261259
env:
262-
FORCE_COLOR: 1
260+
PLATFORM: linux-arm64
261+
OPAMYES: 1
263262
steps:
264-
- name: Login to GitHub Container Registry
265-
uses: docker/login-action@v3
263+
- uses: actions/checkout@main
266264
with:
267-
registry: ghcr.io
268-
username: ${{ github.actor }}
269-
password: ${{ secrets.GITHUB_TOKEN }}
270-
271-
- name: Install Earthly
272-
run: sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.6.13/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly && /usr/local/bin/earthly bootstrap --with-autocomplete'
265+
submodules: recursive
273266

274-
- name: Set up QEMU
275-
id: qemu
276-
uses: docker/setup-qemu-action@v3
267+
- name: Cache opam
268+
id: cache-opam
269+
uses: actions/cache@v4
277270
with:
278-
image: tonistiigi/binfmt:latest
279-
platforms: all
271+
path: ~/.opam/
272+
key: arm-${{ runner.os }}-${{ hashFiles('./haxe.opam', './libs/') }}
280273

281-
- uses: actions/checkout@main
282-
with:
283-
submodules: recursive
274+
- name: Install Neko from S3
275+
run: |
276+
set -ex
284277
285-
- name: Set CONTAINER_ vars
278+
curl -sSL https://build.haxe.org/builds/neko/$PLATFORM/neko_latest.tar.gz -o $RUNNER_TEMP/neko_latest.tar.gz
279+
tar -xf $RUNNER_TEMP/neko_latest.tar.gz -C $RUNNER_TEMP
280+
NEKOPATH=`echo $RUNNER_TEMP/neko-*-*`
281+
sudo mkdir -p /usr/local/bin
282+
sudo mkdir -p /usr/local/include
283+
sudo mkdir -p /usr/local/lib/neko
284+
sudo ln -s $NEKOPATH/{neko,nekoc,nekoml,nekotools} /usr/local/bin/
285+
sudo ln -s $NEKOPATH/libneko.* /usr/local/lib/
286+
sudo ln -s $NEKOPATH/include/* /usr/local/include/
287+
sudo ln -s $NEKOPATH/*.ndll /usr/local/lib/neko/
288+
echo "NEKOPATH=$NEKOPATH" >> $GITHUB_ENV
289+
290+
- name: Print Neko version
291+
run: neko -version 2>&1
292+
293+
294+
- name: Install dependencies
286295
run: |
287-
echo "CONTAINER_REG=$(echo ${{ github.repository }} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV;
288-
echo "CONTAINER_TAG=$(echo ${{ github.ref_name }} | sed -e 's/[^A-Za-z0-9\.]/-/g')" >> $GITHUB_ENV;
296+
set -ex
297+
sudo apt-get update -qqy
298+
sudo apt-get install -qqy ocaml-nox opam libpcre2-dev zlib1g-dev libgtk2.0-dev libmbedtls-dev libipc-system-simple-perl libstring-shellquote-perl ninja-build
289299
290-
- name: Build devcontainer
291-
run: earthly --platform=linux/arm64 +devcontainer --IMAGE_NAME="ghcr.io/${CONTAINER_REG}_devcontainer" --IMAGE_TAG="${CONTAINER_TAG}-arm64" --IMAGE_CACHE="ghcr.io/haxefoundation/haxe_devcontainer:development-arm64"
292-
env:
293-
EARTHLY_PUSH: "${{ github.event_name == 'push' }}"
294-
EARTHLY_USE_INLINE_CACHE: true
295-
EARTHLY_SAVE_INLINE_CACHE: true
300+
- name: Install OCaml libraries
301+
if: steps.cache-opam.outputs.cache-hit != 'true'
302+
run: |
303+
set -ex
304+
opam init
305+
opam pin add haxe . --no-action
306+
opam install haxe --deps-only --assume-depexts
307+
opam list
308+
ocamlopt -v
296309
297310
- name: Set ADD_REVISION=1 for non-release
298311
if: ${{ !startsWith(github.ref, 'refs/tags/') }}
299312
run: echo "ADD_REVISION=1" >> $GITHUB_ENV
300313

301-
- name: Build
302-
run: earthly --platform=linux/arm64 +build --ADD_REVISION="$ADD_REVISION" --SET_SAFE_DIRECTORY="true"
303-
env:
304-
EARTHLY_PUSH: "${{ github.event_name == 'push' }}"
305-
EARTHLY_REMOTE_CACHE: "ghcr.io/${{env.CONTAINER_REG}}_cache:build-${{env.CONTAINER_TAG}}-arm64"
314+
- name: Build Haxe
315+
run: |
316+
set -ex
317+
eval $(opam env)
318+
opam config exec -- make -s -j`nproc` STATICLINK=1 haxe
319+
opam config exec -- make -s haxelib
320+
make -s package_unix
321+
ls -l out
322+
ldd -v ./haxe
323+
ldd -v ./haxelib
306324
307325
- name: Get KhaTools_linux_arm64
308326
run: git clone https://github.com/Kode/KhaTools_linux_arm64.git
@@ -342,6 +360,82 @@ jobs:
342360
env:
343361
ROBBOT_PASS: ${{ secrets.ROBBOT_PASS }}
344362

363+
linux-arm64-test:
364+
needs: linux-arm64-build
365+
runs-on: ubuntu-22.04-arm
366+
env:
367+
PLATFORM: linux-arm64
368+
TEST: ${{matrix.target}}
369+
HXCPP_COMPILE_CACHE: ~/hxcache
370+
HAXE_STD_PATH: /usr/local/share/haxe/std
371+
strategy:
372+
fail-fast: false
373+
matrix:
374+
target: [macro, js, cpp, jvm, php, python, lua, neko]
375+
include:
376+
- target: lua
377+
APT_PACKAGES: ncurses-dev
378+
steps:
379+
- uses: actions/checkout@main
380+
with:
381+
submodules: recursive
382+
- uses: actions/download-artifact@v4
383+
with:
384+
name: linuxArm64Binaries
385+
path: linuxBinaries
386+
387+
- name: Install Neko from S3
388+
run: |
389+
set -ex
390+
391+
curl -sSL https://build.haxe.org/builds/neko/$PLATFORM/neko_latest.tar.gz -o $RUNNER_TEMP/neko_latest.tar.gz
392+
tar -xf $RUNNER_TEMP/neko_latest.tar.gz -C $RUNNER_TEMP
393+
NEKOPATH=`echo $RUNNER_TEMP/neko-*-*`
394+
sudo mkdir -p /usr/local/bin
395+
sudo mkdir -p /usr/local/include
396+
sudo mkdir -p /usr/local/lib/neko
397+
sudo ln -s $NEKOPATH/{neko,nekoc,nekoml,nekotools} /usr/local/bin/
398+
sudo ln -s $NEKOPATH/libneko.* /usr/local/lib/
399+
sudo ln -s $NEKOPATH/include/* /usr/local/include/
400+
sudo ln -s $NEKOPATH/*.ndll /usr/local/lib/neko/
401+
echo "NEKOPATH=$NEKOPATH" >> $GITHUB_ENV
402+
403+
- name: Print Neko version
404+
run: neko -version 2>&1
405+
406+
407+
- name: Setup Haxe
408+
run: |
409+
sudo apt install -qqy libmbedtls-dev
410+
411+
set -ex
412+
tar -xf linuxBinaries/*_bin.tar.gz -C linuxBinaries --strip-components=1
413+
sudo mkdir -p /usr/local/bin/
414+
sudo mkdir -p /usr/local/share/haxe/
415+
sudo ln -s `pwd`/linuxBinaries/haxe /usr/local/bin/haxe
416+
sudo ln -s `pwd`/linuxBinaries/haxelib /usr/local/bin/haxelib
417+
sudo ln -s `pwd`/linuxBinaries/std /usr/local/share/haxe/std
418+
419+
- name: Print Haxe version
420+
run: haxe -version
421+
422+
- name: Setup haxelib
423+
run: |
424+
set -ex
425+
mkdir ~/haxelib
426+
haxelib setup ~/haxelib
427+
428+
- name: Install apt packages
429+
if: matrix.APT_PACKAGES
430+
run: |
431+
set -ex
432+
sudo apt update -qqy
433+
sudo apt install -qqy ${{matrix.APT_PACKAGES}}
434+
435+
- name: Test
436+
run: haxe RunCi.hxml
437+
working-directory: ${{github.workspace}}/tests
438+
345439
mac-build:
346440
strategy:
347441
fail-fast: false

0 commit comments

Comments
 (0)