Skip to content

feat: Initial arm64 support #183

feat: Initial arm64 support

feat: Initial arm64 support #183

Workflow file for this run

name: Build
on:
push:
branches:
- "master"
- "dev/**"
- "ga"
pull_request:
branches:
- "master"
jobs:
build:
strategy:
matrix:
os: [ubuntu-latest, ubuntu-20.04]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install Haiku build dependencies
run: |
sudo apt install -y git nasm bc autoconf automake texinfo flex bison gawk build-essential unzip wget zip less zlib1g-dev libzstd-dev xorriso libtool python3
- name: Install newer GCC version
if: ${{ matrix.os == 'ubuntu-20.04' }}
run: |
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
sudo apt install -y gcc-11 g++-11
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 100 --slave /usr/bin/g++ g++ /usr/bin/g++-11 --slave /usr/bin/gcov gcov /usr/bin/gcov-11
- name: Check latest Haiku hrev
id: get_hrev
run: |
echo "hrev=$(curl -s https://git.haiku-os.org/haiku/refs/tags | sed -n 's/^.*>\(hrev[^<]*\).*$/\1/p' | head -n 1)" >> "$GITHUB_OUTPUT"
- name: Fetch cached Haiku build
id: cache
uses: actions/cache@v3
with:
path: 'haiku-build'
key: 'haiku-${{ steps.get_hrev.outputs.hrev }}-build'
- name: Build Haiku
if: steps.cache.outputs.cache-hit != 'true'
run: |
export HAIKU_BUILD_ENVIRONMENT_ROOT=$GITHUB_WORKSPACE/haiku-build
./copy_objects.sh
- name: Install HyClone build dependencies
run: |
sudo apt install -y cmake libgmp-dev libmpfr-dev zlib1g-dev libzstd-dev
- name: Build HyClone
run: |
export HAIKU_BUILD_ENVIRONMENT_ROOT=$GITHUB_WORKSPACE/haiku-build
./copy_objects.sh
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=.
make install
cd ..
- name: Build HPREFIX
run: |
export HAIKU_BUILD_ENVIRONMENT_ROOT=$GITHUB_WORKSPACE/haiku-build
export HPREFIX=$GITHUB_WORKSPACE/hprefix
export HYCLONE_INSTALL_PREFIX=build
./build_hprefix.sh --system-prefix=build
sudo umount -f $HPREFIX/.hyclone.shm || true
sudo rm -rf $HPREFIX/.hyclone.*
pushd $HPREFIX; tar cvf ../hprefix.tar *; popd
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: hyclone_${{ matrix.os }}
path: build
- name: Upload HPREFIX
if: ${{ matrix.os == 'ubuntu-latest' }}
uses: actions/upload-artifact@v3
with:
name: hprefix.tar
path: hprefix.tar