Skip to content

Commit

Permalink
ci: Add arch option to build.sh
Browse files Browse the repository at this point in the history
  • Loading branch information
jopemachine committed Jun 4, 2024
1 parent 7d49ffd commit fe9866b
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 41 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Build and release x86_64 binaries
name: Build and release

on: [push]

Expand All @@ -8,14 +8,22 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
target: ["x86_64"]
target: ["x86_64", "aarch64"]
os: ["ubuntu18.04", "ubuntu20.04", "ubuntu22.04", "alpine"]
steps:
- uses: actions/checkout@v4

- name: Install QEMU
if: matrix.target == 'aarch64'
run: |
sudo apt-get update
sudo apt-get install -y qemu-user-static
sudo update-binfmts --enable qemu-arm
sudo update-binfmts --enable qemu-aarch64
- name: Build libbaihook
run: |
./build.sh ${{ matrix.os }}
./build.sh --arch ${{ matrix.target }} ${{ matrix.os }}
- name: Release to GitHub
uses: softprops/action-gh-release@v2
Expand Down
36 changes: 0 additions & 36 deletions .github/workflows/release_aarch64.yml

This file was deleted.

16 changes: 14 additions & 2 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,23 +14,27 @@ usage() {
echo ""
echo "OPTIONS"
echo " -h, --help Show this help message and exit."
echo " --arch Specify the target architecture (default: uname -m)."
echo " --clean Run 'make clean' instead of 'make'."
echo " --force-cmake Force to re-run cmake to refresh build scripts."
}

arch=$(uname -m)

while [ $# -gt 0 ]; do
case $1 in
-h | --help) usage; exit 1 ;;
--force-cmake) FORCE_CMAKE=1 ;;
--clean) CLEAN=1 ;;
--arch) shift; arch=$1 ;;
*)
break
esac
shift
done

distro="$1"
arch="$(uname -m)"

case $distro in
ubuntu22.04)
distro="ubuntu"
Expand All @@ -56,7 +60,15 @@ user="$(id -u):$(id -g)"
# to prevent "fatal: unable to look up current user in the passwd file: no such user" error from git
git_fix="-e GIT_COMMITTER_NAME=devops -e [email protected]"

docker build -t lablup/hook-dev:${distro_ver} -f Dockerfile.${distro_ver} .
if [ "$arch" = "aarch64" ]; then
echo '{ "experimental": true }' | sudo tee /etc/docker/daemon.json
sudo systemctl restart docker

docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
fi

docker build --platform=linux/${arch} -t lablup/hook-dev:${distro_ver} -f Dockerfile.${distro_ver} .

docker_run="docker run --rm ${git_fix} -v "$(pwd):/root" -u ${user} -w=/root lablup/hook-dev:${distro_ver} /bin/sh -c"

if [ "$FORCE_CMAKE" -eq 1 -o ! -f "Makefile" ]; then
Expand Down

0 comments on commit fe9866b

Please sign in to comment.