Skip to content

Commit

Permalink
build, feat: build alpine in ci.
Browse files Browse the repository at this point in the history
  • Loading branch information
xicilion committed Nov 25, 2022
1 parent 9165978 commit 7f356bd
Show file tree
Hide file tree
Showing 16 changed files with 127 additions and 325 deletions.
11 changes: 8 additions & 3 deletions .github/workflows/build.sh
Expand Up @@ -3,13 +3,18 @@
set -ev

if [[ ! -z $USE_VENDER_DIST ]]; then
./scripts/download_vender.sh;
bash ./scripts/download_vender.sh;
fi

if [[ "$TARGET_OS" != 'Windows' ]]; then
bash build -j2 ${TARGET_ARCH} ${BUILD_TYPE} ci
if [[ "$BUILD_ALPINE" == "alpine" ]]; then
CUR=`pwd`
docker run --rm -e USE_VENDER_DIST -e CI=${CI} -v ${CUR}:/fibjs fibjs/alpine-build-env:${TARGET_ARCH} bash -c "cd /fibjs; bash build -j2 ${TARGET_ARCH} ${BUILD_TYPE} ci"
else
bash build -j2 ${TARGET_ARCH} ${BUILD_TYPE} ci
fi
else # Window
exit 1;
fi

exit 0;
exit 0;
58 changes: 24 additions & 34 deletions .github/workflows/build.yml
Expand Up @@ -36,6 +36,14 @@ jobs:
target_arch: [amd64, i386, arm, arm64, mips, mips64]
build_type: [release]
include:
- os: ubuntu-20.04
target_arch: amd64
build_type: release
alpine: alpine
- os: ubuntu-20.04
target_arch: arm64
build_type: release
alpine: alpine
- os: windows-2022
target_arch: amd64
build_type: release
Expand All @@ -45,19 +53,22 @@ jobs:
- os: windows-2022
target_arch: arm64
build_type: release
- os: macos-10.15
- os: macos-11
target_arch: amd64
build_type: release
- os: macos-10.15
- os: macos-11
target_arch: arm64
build_type: release
- os: macos-11
target_arch: amd64
build_type: debug

steps:
- name: Switch XCode to 11.4
- name: Switch XCode to 13.0
uses: maxim-lobanov/setup-xcode@v1
if: runner.os == 'macOS'
with:
xcode-version: '11.4'
xcode-version: '13.0'
- name: Check out Git repository
uses: actions/checkout@v2
with:
Expand All @@ -71,20 +82,24 @@ jobs:
env:
TARGET_ARCH: ${{ matrix.target_arch }}
BUILD_TYPE: ${{ matrix.build_type }}
BUILD_ALPINE: ${{ matrix.alpine }}

- name: Setup ubuntu
if: runner.os == 'Linux'
shell: bash
run: |
sudo bash .github/workflows/setup_ubuntu.sh
bash .github/workflows/setup_ubuntu.sh
env:
TARGET_ARCH: ${{ matrix.target_arch }}
BUILD_ALPINE: ${{ matrix.alpine }}

- name: Prepare on Windows
if: runner.os == 'Windows'
shell: bash
run: |
# download venders
if [[ ! -z $USE_VENDER_DIST ]]; then
./scripts/download_vender.sh;
bash ./scripts/download_vender.sh;
fi
env:
TARGET_ARCH: ${{ matrix.target_arch }}
Expand All @@ -102,6 +117,7 @@ jobs:
env:
TARGET_ARCH: ${{ matrix.target_arch }}
BUILD_TYPE: ${{ matrix.build_type }}
BUILD_ALPINE: ${{ matrix.alpine }}
TARGET_OS: ${{ steps.set-env-vars.outputs.TARGET_OS }}
GIT_BRANCH: ${{ steps.set-env-vars.outputs.GIT_BRANCH }}
RELEASE_TAG: ${{ steps.set-env-vars.outputs.RELEASE_TAG }}
Expand Down Expand Up @@ -141,27 +157,6 @@ jobs:
DIST_ARCH: ${{ steps.set-env-vars.outputs.DIST_ARCH }}
DIST_DIR: ${{ steps.set-env-vars.outputs.DIST_DIR }}
RELEASE_TAG: ${{ steps.set-env-vars.outputs.RELEASE_TAG }}

- name: Generate & copy .jsc files to release directory
shell: bash
# don't generate/update jsc_test* files for production release tag
if: ${{ steps.set-env-vars.outputs.IS_GIT_TAG_MATCH_SEMVER != 'true' }}
continue-on-error: true
run: |
bash .github/workflows/generate_jsc.sh
# don't overwrite existed jsc_test_<arch>.jsc, we only upload jsc_test_<arch>_<platform>.jsc to release,
# then if we found size of `jsc_test_<arch>_<platform>.jsc` differd with the `jsc_test_<arch>.jsc`(which,
# in general, means jsc format has been updated due to upgrade of v8), we would download
# `jsc_test_<arch>_<platform>.jsc` and rename it to `jsc_test_<arch>.jsc`
cp ./test/vm_test/jsc_test_*.jsc ./$RELEASE_TAG/
rm -rf ./test/vm_test/jsc_test_*.jsc;
git reset --hard;
env:
DIST_ARCH: ${{ steps.set-env-vars.outputs.DIST_ARCH }}
DIST_DIR: ${{ steps.set-env-vars.outputs.DIST_DIR }}
RELEASE_TAG: ${{ steps.set-env-vars.outputs.RELEASE_TAG }}
TARGET_OS_NAME: ${{ steps.set-env-vars.outputs.TARGET_OS_NAME }}
TARGET_ARCH: ${{ matrix.target_arch }}

- name: Create Release For non-git-tagged Commitish Only
id: create_release
Expand Down Expand Up @@ -202,13 +197,8 @@ jobs:
bash .github/workflows/test.sh;
fi
env:
DIST_DIR: ${{ steps.set-env-vars.outputs.DIST_DIR }}
TARGET_ARCH: ${{ matrix.target_arch }}
BUILD_TYPE: ${{ matrix.build_type }}
RELEASE_TAG: ${{ steps.set-env-vars.outputs.RELEASE_TAG }}
TARGET_OS: ${{ steps.set-env-vars.outputs.TARGET_OS }}
BUILD_ALPINE: ${{ matrix.alpine }}
TARGET_OS_NAME: ${{ steps.set-env-vars.outputs.TARGET_OS_NAME }}
GIT_TAG: ${{ steps.set-env-vars.outputs.GIT_TAG }}
GIT_BRANCH: ${{ steps.set-env-vars.outputs.GIT_BRANCH }}
DIST_DIR: ${{ steps.set-env-vars.outputs.DIST_DIR }}
DIST_ARCH: ${{ steps.set-env-vars.outputs.DIST_ARCH }}
IS_UPLOAD_ASSETS: ${{ steps.set-env-vars.outputs.IS_UPLOAD_ASSETS }}
53 changes: 33 additions & 20 deletions .github/workflows/setup_ubuntu.sh
@@ -1,22 +1,35 @@
#!/bin/bash

apt install clang -y
apt install make -y
apt install cmake -y
apt install git -y
apt install ccache -y
apt install libx11-dev -y

apt install g++-x86-64-linux-gnu -y

apt install g++-i686-linux-gnu -y

apt install g++-arm-linux-gnueabihf -y

apt install g++-aarch64-linux-gnu -y

apt install g++-mips-linux-gnu -y

apt install g++-mips64-linux-gnuabi64 -y

apt install qemu-user-static -y
if [ "$BUILD_ALPINE" != "alpine" ]; then
sudo apt install clang -y
sudo apt install make -y
sudo apt install cmake -y
sudo apt install git -y
sudo apt install libx11-dev -y

if [[ "$TARGET_ARCH" == "amd64" ]]; then
sudo apt install g++-x86-64-linux-gnu -y
fi

if [[ "$TARGET_ARCH" == "i386" ]]; then
sudo apt install g++-i686-linux-gnu -y
fi

if [[ "$TARGET_ARCH" == "arm" ]]; then
sudo apt install g++-arm-linux-gnueabihf -y
fi

if [[ "$TARGET_ARCH" == "arm64" ]]; then
sudo apt install g++-aarch64-linux-gnu -y
fi

if [[ "$TARGET_ARCH" == "mips" ]]; then
sudo apt install g++-mips-linux-gnu -y
fi

if [[ "$TARGET_ARCH" == "mips64" ]]; then
sudo apt install g++-mips64-linux-gnuabi64 -y
fi
fi

sudo apt install qemu-user-static -y
35 changes: 20 additions & 15 deletions .github/workflows/test.sh
Expand Up @@ -3,22 +3,27 @@
set -ev

if [[ $TARGET_OS_NAME == 'Linux' ]]; then
case $TARGET_ARCH in
arm) export QEMU_LD_PREFIX="/usr/arm-linux-gnueabihf"
;;
arm64) export QEMU_LD_PREFIX="/usr/aarch64-linux-gnu"
;;
armv6) export QEMU_LD_PREFIX="/usr/arm-linux-gnueabi"
;;
mips) export QEMU_LD_PREFIX="/usr/mips-linux-gnu"
;;
mips64) export QEMU_LD_PREFIX="/usr/mips64-linux-gnuabi64"
;;
i386|amd64)
;;
esac
if [[ "$BUILD_ALPINE" == "alpine" ]]; then
CUR=`pwd`
docker run --rm -v ${CUR}:/fibjs fibjs/alpine-test-env:${TARGET_ARCH} bash -c "cd /fibjs; ./bin/Linux_${TARGET_ARCH}_${BUILD_TYPE}/fibjs test/main.js"
else
case $TARGET_ARCH in
arm) export QEMU_LD_PREFIX="/usr/arm-linux-gnueabihf"
;;
arm64) export QEMU_LD_PREFIX="/usr/aarch64-linux-gnu"
;;
armv6) export QEMU_LD_PREFIX="/usr/arm-linux-gnueabi"
;;
mips) export QEMU_LD_PREFIX="/usr/mips-linux-gnu"
;;
mips64) export QEMU_LD_PREFIX="/usr/mips64-linux-gnuabi64"
;;
i386|amd64)
;;
esac

./bin/Linux_${TARGET_ARCH}_${BUILD_TYPE}/fibjs test/main.js
./bin/Linux_${TARGET_ARCH}_${BUILD_TYPE}/fibjs test/main.js
fi
else # Windows/Darwin
./bin/$DIST_DIR/fibjs test
fi
Expand Down
2 changes: 1 addition & 1 deletion build
Expand Up @@ -37,7 +37,7 @@ if [[ $BUILD_ALPINE == "alpine" ]]; then
args="$@"
args="${args/alpine/""}"

docker run --rm -v ${SOURCE_ROOT}:/fibjs fibjs/alpine-build-env:${BUILD_ARCH} bash -c "bash /fibjs/build ${args}"
docker run --rm -v ${SOURCE_ROOT}:/fibjs fibjs/alpine-build-env:${BUILD_ARCH} bash -c "cd /fibjs; bash build ${args}"
exit $?
fi

Expand Down
14 changes: 14 additions & 0 deletions dockerfiles/alpine-build-env.amd64
@@ -0,0 +1,14 @@
FROM alpine:latest

LABEL AUTHOR="xicilion"
LABEL AUTHOR_EMAIL="lion@9465.net"

RUN apk add bash
RUN apk add git
RUN apk add cmake
RUN apk add make
RUN apk add clang
RUN apk add g++
RUN apk add linux-headers
RUN apk add libx11-dev
RUN apk add xz
4 changes: 4 additions & 0 deletions dockerfiles/alpine-build-env.arm64
@@ -0,0 +1,4 @@
FROM dockcross/linux-arm64-musl

LABEL AUTHOR="xicilion"
LABEL AUTHOR_EMAIL="lion@9465.net"
6 changes: 6 additions & 0 deletions dockerfiles/alpine-test-env.amd64
@@ -0,0 +1,6 @@
FROM alpine:latest

LABEL AUTHOR="xicilion"
LABEL AUTHOR_EMAIL="lion@9465.net"

RUN apk add bash
6 changes: 6 additions & 0 deletions dockerfiles/alpine-test-env.arm64
@@ -0,0 +1,6 @@
FROM multiarch/alpine:arm64-latest-stable

LABEL AUTHOR="xicilion"
LABEL AUTHOR_EMAIL="lion@9465.net"

RUN apk add bash
30 changes: 0 additions & 30 deletions dockerfiles/build-env-alpine/Dockerfile

This file was deleted.

0 comments on commit 7f356bd

Please sign in to comment.