mirror of
https://github.com/EasyTier/EasyTier.git
synced 2024-11-16 03:32:43 +08:00
move shared codes in workflows to script (#103)
This commit is contained in:
parent
e023c05440
commit
2deb867678
54
.github/workflows/core.yml
vendored
54
.github/workflows/core.yml
vendored
|
@ -74,59 +74,7 @@ jobs:
|
||||||
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
||||||
|
|
||||||
- name: Install rust target
|
- name: Install rust target
|
||||||
run: |
|
run: bash ./.github/workflows/install_rust.sh
|
||||||
# dependencies are only needed on ubuntu as that's the only place where
|
|
||||||
# we make cross-compilation
|
|
||||||
if [[ $OS =~ ^ubuntu.*$ ]]; then
|
|
||||||
sudo apt-get update && sudo apt-get install -qq crossbuild-essential-arm64 crossbuild-essential-armhf musl-tools
|
|
||||||
# curl -s musl.cc | grep mipsel
|
|
||||||
case $TARGET in
|
|
||||||
mipsel-unknown-linux-musl)
|
|
||||||
MUSL_URI=mipsel-linux-muslsf
|
|
||||||
;;
|
|
||||||
aarch64-unknown-linux-musl)
|
|
||||||
MUSL_URI=aarch64-linux-musl
|
|
||||||
;;
|
|
||||||
armv7-unknown-linux-musleabihf)
|
|
||||||
MUSL_URI=armv7l-linux-musleabihf
|
|
||||||
;;
|
|
||||||
arm-unknown-linux-musleabihf)
|
|
||||||
MUSL_URI=arm-linux-musleabihf
|
|
||||||
;;
|
|
||||||
mips-unknown-linux-musl)
|
|
||||||
MUSL_URI=mips-linux-muslsf
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [ -n "$MUSL_URI" ]; then
|
|
||||||
mkdir -p ./musl_gcc
|
|
||||||
wget -c https://musl.cc/${MUSL_URI}-cross.tgz -P ./musl_gcc/
|
|
||||||
tar zxf ./musl_gcc/${MUSL_URI}-cross.tgz -C ./musl_gcc/
|
|
||||||
sudo ln -s $(pwd)/musl_gcc/${MUSL_URI}-cross/bin/*gcc /usr/bin/
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# see https://github.com/rust-lang/rustup/issues/3709
|
|
||||||
rustup set auto-self-update disable
|
|
||||||
rustup install 1.75
|
|
||||||
rustup default 1.75
|
|
||||||
|
|
||||||
# mips/mipsel cannot add target from rustup, need compile by ourselves
|
|
||||||
if [[ $OS =~ ^ubuntu.*$ && $TARGET =~ ^mips.*$ ]]; then
|
|
||||||
cd "$PWD/musl_gcc/${MUSL_URI}-cross/lib/gcc/${MUSL_URI}/11.2.1" || exit 255
|
|
||||||
# for panic-abort
|
|
||||||
cp libgcc_eh.a libunwind.a
|
|
||||||
|
|
||||||
# for mimalloc
|
|
||||||
ar x libgcc.a _ctzsi2.o _clz.o _bswapsi2.o
|
|
||||||
ar rcs libctz.a _ctzsi2.o _clz.o _bswapsi2.o
|
|
||||||
|
|
||||||
rustup toolchain install nightly-x86_64-unknown-linux-gnu
|
|
||||||
rustup component add rust-src --toolchain nightly-x86_64-unknown-linux-gnu
|
|
||||||
cd -
|
|
||||||
else
|
|
||||||
rustup target add $TARGET
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Setup protoc
|
- name: Setup protoc
|
||||||
uses: arduino/setup-protoc@v2
|
uses: arduino/setup-protoc@v2
|
||||||
|
|
68
.github/workflows/gui.yml
vendored
68
.github/workflows/gui.yml
vendored
|
@ -100,73 +100,7 @@ jobs:
|
||||||
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
||||||
|
|
||||||
- name: Install rust target
|
- name: Install rust target
|
||||||
run: |
|
run: bash ./.github/workflows/install_rust.sh
|
||||||
# dependencies are only needed on ubuntu as that's the only place where
|
|
||||||
# we make cross-compilation
|
|
||||||
if [[ $OS =~ ^ubuntu.*$ ]]; then
|
|
||||||
sudo apt-get update && sudo apt-get install -qq crossbuild-essential-arm64 crossbuild-essential-armhf musl-tools
|
|
||||||
# for easytier-gui
|
|
||||||
if [[ $GUI_TARGET != '' ]]; then
|
|
||||||
sudo apt install libwebkit2gtk-4.0-dev \
|
|
||||||
build-essential \
|
|
||||||
curl \
|
|
||||||
wget \
|
|
||||||
file \
|
|
||||||
libssl-dev \
|
|
||||||
libgtk-3-dev \
|
|
||||||
libayatana-appindicator3-dev \
|
|
||||||
librsvg2-dev \
|
|
||||||
patchelf
|
|
||||||
fi
|
|
||||||
# curl -s musl.cc | grep mipsel
|
|
||||||
case $TARGET in
|
|
||||||
mipsel-unknown-linux-musl)
|
|
||||||
MUSL_URI=mipsel-linux-muslsf
|
|
||||||
;;
|
|
||||||
aarch64-unknown-linux-musl)
|
|
||||||
MUSL_URI=aarch64-linux-musl
|
|
||||||
;;
|
|
||||||
armv7-unknown-linux-musleabihf)
|
|
||||||
MUSL_URI=armv7l-linux-musleabihf
|
|
||||||
;;
|
|
||||||
arm-unknown-linux-musleabihf)
|
|
||||||
MUSL_URI=arm-linux-musleabihf
|
|
||||||
;;
|
|
||||||
mips-unknown-linux-musl)
|
|
||||||
MUSL_URI=mips-linux-muslsf
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [ -n "$MUSL_URI" ]; then
|
|
||||||
mkdir -p ./musl_gcc
|
|
||||||
wget -c https://musl.cc/${MUSL_URI}-cross.tgz -P ./musl_gcc/
|
|
||||||
tar zxf ./musl_gcc/${MUSL_URI}-cross.tgz -C ./musl_gcc/
|
|
||||||
sudo ln -s $(pwd)/musl_gcc/${MUSL_URI}-cross/bin/*gcc /usr/bin/
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# see https://github.com/rust-lang/rustup/issues/3709
|
|
||||||
rustup set auto-self-update disable
|
|
||||||
rustup install 1.75
|
|
||||||
rustup default 1.75
|
|
||||||
|
|
||||||
# mips/mipsel cannot add target from rustup, need compile by ourselves
|
|
||||||
if [[ $OS =~ ^ubuntu.*$ && $TARGET =~ ^mips.*$ ]]; then
|
|
||||||
cd "$PWD/musl_gcc/${MUSL_URI}-cross/lib/gcc/${MUSL_URI}/11.2.1" || exit 255
|
|
||||||
# for panic-abort
|
|
||||||
cp libgcc_eh.a libunwind.a
|
|
||||||
|
|
||||||
# for mimalloc
|
|
||||||
ar x libgcc.a _ctzsi2.o _clz.o _bswapsi2.o
|
|
||||||
ar rcs libctz.a _ctzsi2.o _clz.o _bswapsi2.o
|
|
||||||
|
|
||||||
rustup toolchain install nightly-x86_64-unknown-linux-gnu
|
|
||||||
rustup component add rust-src --toolchain nightly-x86_64-unknown-linux-gnu
|
|
||||||
cd -
|
|
||||||
else
|
|
||||||
rustup target add $TARGET
|
|
||||||
rustup target add $GUI_TARGET
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Setup protoc
|
- name: Setup protoc
|
||||||
uses: arduino/setup-protoc@v2
|
uses: arduino/setup-protoc@v2
|
||||||
|
|
75
.github/workflows/install_rust.sh
vendored
Normal file
75
.github/workflows/install_rust.sh
vendored
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# env needed:
|
||||||
|
# - TARGET
|
||||||
|
# - GUI_TARGET
|
||||||
|
# - OS
|
||||||
|
|
||||||
|
# dependencies are only needed on ubuntu as that's the only place where
|
||||||
|
# we make cross-compilation
|
||||||
|
if [[ $OS =~ ^ubuntu.*$ ]]; then
|
||||||
|
sudo apt-get update && sudo apt-get install -qq crossbuild-essential-arm64 crossbuild-essential-armhf musl-tools
|
||||||
|
# for easytier-gui
|
||||||
|
if [[ $GUI_TARGET != '' ]]; then
|
||||||
|
sudo apt install libwebkit2gtk-4.0-dev \
|
||||||
|
build-essential \
|
||||||
|
curl \
|
||||||
|
wget \
|
||||||
|
file \
|
||||||
|
libssl-dev \
|
||||||
|
libgtk-3-dev \
|
||||||
|
libayatana-appindicator3-dev \
|
||||||
|
librsvg2-dev \
|
||||||
|
patchelf
|
||||||
|
fi
|
||||||
|
# curl -s musl.cc | grep mipsel
|
||||||
|
case $TARGET in
|
||||||
|
mipsel-unknown-linux-musl)
|
||||||
|
MUSL_URI=mipsel-linux-muslsf
|
||||||
|
;;
|
||||||
|
aarch64-unknown-linux-musl)
|
||||||
|
MUSL_URI=aarch64-linux-musl
|
||||||
|
;;
|
||||||
|
armv7-unknown-linux-musleabihf)
|
||||||
|
MUSL_URI=armv7l-linux-musleabihf
|
||||||
|
;;
|
||||||
|
arm-unknown-linux-musleabihf)
|
||||||
|
MUSL_URI=arm-linux-musleabihf
|
||||||
|
;;
|
||||||
|
mips-unknown-linux-musl)
|
||||||
|
MUSL_URI=mips-linux-muslsf
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ -n "$MUSL_URI" ]; then
|
||||||
|
mkdir -p ./musl_gcc
|
||||||
|
wget -c https://musl.cc/${MUSL_URI}-cross.tgz -P ./musl_gcc/
|
||||||
|
tar zxf ./musl_gcc/${MUSL_URI}-cross.tgz -C ./musl_gcc/
|
||||||
|
sudo ln -s $(pwd)/musl_gcc/${MUSL_URI}-cross/bin/*gcc /usr/bin/
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# see https://github.com/rust-lang/rustup/issues/3709
|
||||||
|
rustup set auto-self-update disable
|
||||||
|
rustup install 1.75
|
||||||
|
rustup default 1.75
|
||||||
|
|
||||||
|
# mips/mipsel cannot add target from rustup, need compile by ourselves
|
||||||
|
if [[ $OS =~ ^ubuntu.*$ && $TARGET =~ ^mips.*$ ]]; then
|
||||||
|
cd "$PWD/musl_gcc/${MUSL_URI}-cross/lib/gcc/${MUSL_URI}/11.2.1" || exit 255
|
||||||
|
# for panic-abort
|
||||||
|
cp libgcc_eh.a libunwind.a
|
||||||
|
|
||||||
|
# for mimalloc
|
||||||
|
ar x libgcc.a _ctzsi2.o _clz.o _bswapsi2.o
|
||||||
|
ar rcs libctz.a _ctzsi2.o _clz.o _bswapsi2.o
|
||||||
|
|
||||||
|
rustup toolchain install nightly-x86_64-unknown-linux-gnu
|
||||||
|
rustup component add rust-src --toolchain nightly-x86_64-unknown-linux-gnu
|
||||||
|
cd -
|
||||||
|
else
|
||||||
|
rustup target add $TARGET
|
||||||
|
if [[ $GUI_TARGET != '' ]]; then
|
||||||
|
rustup target add $GUI_TARGET
|
||||||
|
fi
|
||||||
|
fi
|
Loading…
Reference in New Issue
Block a user