Merge pull request #101 from HyperInspire/dev/test #31
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Release SDKs | |
on: | |
push: | |
tags: | |
- "v*" | |
env: | |
GITHUB_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }} | |
jobs: | |
prepare: | |
name: Prepare Release | |
runs-on: ubuntu-latest | |
outputs: | |
version: ${{ steps.extract_version.outputs.version }} | |
steps: | |
- name: Extract Version Number | |
id: extract_version | |
run: echo "version=$(echo ${GITHUB_REF#refs/tags/} | sed 's/^v//')" >> $GITHUB_OUTPUT | |
build_linux_x86: | |
name: Compile Linux-Ubuntu-x86 | |
needs: prepare | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
- name: Cache Dependencies | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cache/pip | |
~/.cache/apt | |
key: ${{ runner.os }}-deps-${{ hashFiles('**/requirements.txt') }} | |
- name: Update submodules | |
run: | | |
git clone --recurse-submodules https://github.com/HyperInspire/3rdparty.git | |
- name: Install Dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y build-essential libgtk-3-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev | |
- name: Build SDK | |
run: | | |
bash command/build_linux_ubuntu18.sh | |
ls build | |
- name: Zip SDK directory | |
run: | | |
zip -r inspireface-linux-x86-ubuntu18-${{ needs.prepare.outputs.version }}.zip build/inspireface-linux-x86-ubuntu18-${{ needs.prepare.outputs.version }} | |
stat inspireface-linux-x86-ubuntu18-${{ needs.prepare.outputs.version }}.zip | |
- name: Upload SDK Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: sdk_files_linux_x86 | |
path: inspireface-linux-x86-ubuntu18-${{ needs.prepare.outputs.version }}.zip | |
build_armv7_armhf: | |
name: Compile Linux-Armv7-armhf | |
needs: prepare | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
- name: Cache Toolchain | |
uses: actions/cache@v3 | |
with: | |
path: /opt/linaro-toolchain | |
key: ${{ runner.os }}-linaro-toolchain-6.3.1 | |
- name: Update submodules | |
run: | | |
git clone --recurse-submodules https://github.com/HyperInspire/3rdparty.git | |
- name: Install wget and xz-utils | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y wget xz-utils | |
- name: Setup Toolchain | |
run: | | |
if [ ! -d "/opt/linaro-toolchain" ]; then | |
sudo mkdir -p /opt/linaro-toolchain | |
wget -qO- https://releases.linaro.org/components/toolchain/binaries/6.3-2017.05/arm-linux-gnueabihf/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf.tar.xz | sudo tar -xJ -C /opt/linaro-toolchain --strip-components=1 | |
fi | |
- name: Set environment variables | |
run: | | |
echo "ARM_CROSS_COMPILE_TOOLCHAIN=/opt/linaro-toolchain" >> $GITHUB_ENV | |
echo "PATH=/opt/linaro-toolchain/bin:${PATH}" >> $GITHUB_ENV | |
- name: Build SDK | |
run: | | |
bash command/build_cross_armv7_armhf.sh | |
ls build | |
- name: Zip SDK directory | |
run: | | |
zip -r inspireface-linux-armv7-armhf-${{ needs.prepare.outputs.version }}.zip build/inspireface-linux-armv7-armhf-${{ needs.prepare.outputs.version }} | |
stat inspireface-linux-armv7-armhf-${{ needs.prepare.outputs.version }}.zip | |
- name: Upload SDK Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: sdk_files_armv7_armhf | |
path: inspireface-linux-armv7-armhf-${{ needs.prepare.outputs.version }}.zip | |
build_armv7_rv1109rv1126_armhf: | |
name: Compile Linux-Armv7-rv1109rv1126-armhf | |
needs: prepare | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
- name: Cache Toolchain | |
uses: actions/cache@v3 | |
with: | |
path: /opt/linaro-toolchain | |
key: ${{ runner.os }}-linaro-toolchain-6.3.1 | |
- name: Update submodules | |
run: | | |
git clone --recurse-submodules https://github.com/HyperInspire/3rdparty.git | |
- name: Install wget and xz-utils | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y wget xz-utils | |
- name: Setup Toolchain | |
run: | | |
if [ ! -d "/opt/linaro-toolchain" ]; then | |
sudo mkdir -p /opt/linaro-toolchain | |
wget -qO- https://releases.linaro.org/components/toolchain/binaries/6.3-2017.05/arm-linux-gnueabihf/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf.tar.xz | sudo tar -xJ -C /opt/linaro-toolchain --strip-components=1 | |
fi | |
- name: Set environment variables | |
run: | | |
echo "ARM_CROSS_COMPILE_TOOLCHAIN=/opt/linaro-toolchain" >> $GITHUB_ENV | |
echo "PATH=/opt/linaro-toolchain/bin:${PATH}" >> $GITHUB_ENV | |
- name: Build SDK | |
run: | | |
bash command/build_cross_rv1109rv1126_armhf.sh | |
ls build | |
- name: Zip SDK directory | |
run: | | |
zip -r inspireface-linux-armv7-rv1109rv1126-armhf-${{ needs.prepare.outputs.version }}.zip build/inspireface-linux-armv7-rv1109rv1126-armhf-${{ needs.prepare.outputs.version }} | |
stat inspireface-linux-armv7-rv1109rv1126-armhf-${{ needs.prepare.outputs.version }}.zip | |
- name: Upload SDK Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: sdk_files_armv7_rv1109rv1126_armhf | |
path: inspireface-linux-armv7-rv1109rv1126-armhf-${{ needs.prepare.outputs.version }}.zip | |
build_linux_aarch64: | |
name: Compile Linux-Aarch64 | |
needs: prepare | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
- name: Cache Toolchain | |
uses: actions/cache@v3 | |
with: | |
path: /opt/linaro-toolchain | |
key: ${{ runner.os }}-linaro-toolchain-aarch64-6.3.1 | |
- name: Update submodules | |
run: | | |
git clone --recurse-submodules https://github.com/HyperInspire/3rdparty.git | |
- name: Install wget and xz-utils | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y wget xz-utils | |
- name: Setup Toolchain | |
run: | | |
if [ ! -d "/opt/linaro-toolchain" ]; then | |
sudo mkdir -p /opt/linaro-toolchain | |
wget -qO- https://releases.linaro.org/components/toolchain/binaries/6.3-2017.05/aarch64-linux-gnu/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.xz | sudo tar -xJ -C /opt/linaro-toolchain --strip-components=1 | |
fi | |
- name: Set environment variables | |
run: | | |
echo "ARM_CROSS_COMPILE_TOOLCHAIN=/opt/linaro-toolchain" >> $GITHUB_ENV | |
echo "PATH=/opt/linaro-toolchain/bin:${PATH}" >> $GITHUB_ENV | |
- name: Build SDK | |
run: | | |
bash command/build_cross_aarch64.sh | |
ls build | |
- name: Zip SDK directory | |
run: | | |
zip -r inspireface-linux-aarch64-${{ needs.prepare.outputs.version }}.zip build/inspireface-linux-aarch64-${{ needs.prepare.outputs.version }} | |
stat inspireface-linux-aarch64-${{ needs.prepare.outputs.version }}.zip | |
- name: Upload SDK Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: sdk_files_linux_aarch64 | |
path: inspireface-linux-aarch64-${{ needs.prepare.outputs.version }}.zip | |
build_android: | |
name: Compile Android | |
needs: prepare | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
- name: Update submodules | |
run: | | |
git clone --recurse-submodules https://github.com/HyperInspire/3rdparty.git | |
- name: Install Dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y wget unzip xz-utils | |
- name: Cache Android NDK | |
uses: actions/cache@v3 | |
with: | |
path: /opt/android-ndk-r18b | |
key: ${{ runner.os }}-android-ndk-r18b | |
- name: Download and Extract Android NDK | |
run: | | |
if [ ! -d "/opt/android-ndk-r18b" ]; then | |
sudo mkdir -p /opt/android-ndk-r18b | |
wget -qO /tmp/android-ndk.zip https://dl.google.com/android/repository/android-ndk-r18b-linux-x86_64.zip | |
sudo unzip /tmp/android-ndk.zip -d /opt | |
rm /tmp/android-ndk.zip | |
fi | |
- name: Set Android NDK Environment Variables | |
run: | | |
echo "ANDROID_NDK=/opt/android-ndk-r18b" >> $GITHUB_ENV | |
echo "PATH=/opt/android-ndk-r18b/bin:${PATH}" >> $GITHUB_ENV | |
- name: Cache OpenCV Android SDK | |
uses: actions/cache@v3 | |
with: | |
path: /opt/opencv-android-sdk | |
key: ${{ runner.os }}-opencv-android-sdk-4.5.1 | |
- name: Download and Extract OpenCV Android SDK | |
run: | | |
if [ ! -d "/opt/opencv-android-sdk" ]; then | |
sudo mkdir -p /opt/opencv-android-sdk | |
wget -qO /tmp/opencv-android-sdk.zip https://github.com/opencv/opencv/releases/download/4.5.1/opencv-4.5.1-android-sdk.zip | |
sudo unzip /tmp/opencv-android-sdk.zip -d /opt/opencv-android-sdk | |
rm /tmp/opencv-android-sdk.zip | |
fi | |
- name: Set OpenCV Environment Variables | |
run: | | |
echo "OPENCV_DIR=/opt/opencv-android-sdk/OpenCV-android-sdk/sdk/native/jni" >> $GITHUB_ENV | |
- name: Build SDK | |
run: | | |
bash command/build_android.sh | |
ls build | |
- name: Zip SDK directory | |
run: | | |
zip -r inspireface-android-${{ needs.prepare.outputs.version }}.zip build/inspireface-android-${{ needs.prepare.outputs.version }} | |
stat inspireface-android-${{ needs.prepare.outputs.version }}.zip | |
- name: Upload SDK Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: sdk_files_android | |
path: inspireface-android-${{ needs.prepare.outputs.version }}.zip | |
build_ios: | |
name: Compile iOS-arm64 | |
needs: prepare | |
runs-on: macos-latest | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
- name: Update submodules | |
run: | | |
git clone --recurse-submodules https://github.com/HyperInspire/3rdparty.git | |
- name: Build SDK | |
run: | | |
bash command/build_ios.sh | |
ls build | |
- name: Zip SDK directory | |
run: | | |
zip -r inspireface-ios-${{ needs.prepare.outputs.version }}.zip build/inspireface-ios-${{ needs.prepare.outputs.version }} | |
stat inspireface-ios-${{ needs.prepare.outputs.version }}.zip | |
- name: Upload SDK Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: sdk_files_ios | |
path: inspireface-ios-${{ needs.prepare.outputs.version }}.zip | |
release: | |
name: Release SDKs to GitHub | |
needs: [prepare, build_linux_x86, build_armv7_armhf, build_armv7_rv1109rv1126_armhf, build_linux_aarch64, build_android, build_ios] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
- name: Download All SDK Artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
path: ./all_artifacts | |
- name: Create GitHub Release | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: ./all_artifacts/**/*.zip | |
name: Release ${{ needs.prepare.outputs.version }} | |
body: | | |
Release of InspireFace SDK version ${{ needs.prepare.outputs.version }} | |
This release includes SDKs for the following platforms: | |
- Linux x86 (Ubuntu 18.04) | |
- Linux ARMv7 (armhf) | |
- Linux ARMv7 (RV1109/RV1126) | |
- Linux AArch64 | |
- Android | |
- iOS | |
draft: false | |
prerelease: false |