Skip to content

Merge pull request #101 from HyperInspire/dev/test #31

Merge pull request #101 from HyperInspire/dev/test

Merge pull request #101 from HyperInspire/dev/test #31

Workflow file for this run

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