Merge pull request #43 from HyperInspire/feature/aarch64 #9
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 | |
# Trigger the workflow when pushing tags that match the pattern "v*" | |
on: | |
push: | |
tags: | |
- "v*" | |
#on: | |
# push: | |
# branches: ["feature/aarch64"] | |
# Set the global GitHub token environment variable | |
env: | |
GITHUB_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }} | |
jobs: | |
build_linux_x86: | |
name: Compile Linux-Ubuntu-x86 | |
runs-on: ubuntu-latest | |
steps: | |
# Step 1: Checkout the repository | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
# Step 2: Synchronize and update submodules recursively | |
- name: Update submodules | |
run: | | |
git submodule sync --recursive # Ensure submodule paths are up-to-date | |
git submodule update --init --recursive # Initialize and update all submodules | |
# Step 3: Install necessary dependencies for building the CMake project | |
- name: Install Dependencies | |
run: | | |
sudo apt-get update # Update package lists | |
# Install build tools and required libraries for video processing | |
sudo apt-get install -y build-essential libgtk-3-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev | |
# Step 4: Extract the version number from the tag (e.g., "v1.2.3" becomes "1.2.3") | |
- name: Extract Version Number | |
id: extract_version | |
run: echo "VERSION=$(echo ${GITHUB_REF#refs/tags/} | sed 's/^v//')" >> $GITHUB_ENV | |
# Step 5: Start building the SDK | |
- name: Start Building the InspireFace-Linux-x86 | |
run: | | |
bash command/build_linux_ubuntu18.sh | |
ls build | |
# Step 6: Zip SDK directory | |
- name: Zip SDK directory | |
run: | | |
zip -r inspireface-linux-x86-ubuntu18-${{ env.VERSION }}.zip build/inspireface-linux-x86-ubuntu18-${{ env.VERSION }} | |
stat inspireface-linux-x86-ubuntu18-${{ env.VERSION }}.zip | |
# Step 7: Upload the zipped SDK files for the next job | |
- name: Upload SDK Artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: sdk_files | |
path: | | |
inspireface-linux-x86-ubuntu18-${{ env.VERSION }}.zip | |
build_armv7_armhf: | |
name: Compile Linux-Armv7-armhf | |
runs-on: ubuntu-latest | |
steps: | |
# Step 1: Checkout the repository | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
# Step 2: Synchronize and update submodules recursively | |
- name: Update submodules | |
run: | | |
git submodule sync --recursive # Ensure submodule paths are up-to-date | |
git submodule update --init --recursive # Initialize and update all submodules | |
# Step 3: Install wget and xz-utils | |
- name: Install wget and xz-utils | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y wget xz-utils | |
# Step 4: Extract the version number from the tag (e.g., "v1.2.3" becomes "1.2.3") | |
- name: Extract Version Number | |
id: extract_version | |
run: echo "VERSION=$(echo ${GITHUB_REF#refs/tags/} | sed 's/^v//')" >> $GITHUB_ENV | |
# Step 5: Download Toolchain | |
- name: Download and Extract Linaro Toolchain | |
run: | | |
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 | tar -xJ -C /opt/linaro-toolchain --strip-components=1 | |
# Step 6: Install Toolchain | |
- name: Set environment variables | |
run: | | |
echo "ARM_CROSS_COMPILE_TOOLCHAIN=/opt/linaro-toolchain" >> $GITHUB_ENV | |
echo "PATH=/opt/linaro-toolchain/bin:${PATH}" >> $GITHUB_ENV | |
# Step 7: Start building the SDK | |
- name: Start Building the InspireFace-Linux-armv7 | |
run: | | |
bash command/build_cross_armv7_armhf.sh | |
ls build | |
# Step 8: Zip SDK directory | |
- name: Zip SDK directory | |
run: | | |
zip -r inspireface-linux-armv7-armhf-${{ env.VERSION }}.zip build/inspireface-linux-armv7-armhf-${{ env.VERSION }} | |
stat inspireface-linux-armv7-armhf-${{ env.VERSION }}.zip | |
# Step 9: Upload the zipped SDK files for the next job | |
- name: Upload SDK Artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: sdk_files | |
path: | | |
inspireface-linux-armv7-armhf-${{ env.VERSION }}.zip | |
build_armv7_rv1109rv1126_armhf: | |
name: Compile Linux-Armv7-rv1109rv1126-armhf | |
runs-on: ubuntu-latest | |
steps: | |
# Step 1: Checkout the repository | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
# Step 2: Synchronize and update submodules recursively | |
- name: Update submodules | |
run: | | |
git submodule sync --recursive # Ensure submodule paths are up-to-date | |
git submodule update --init --recursive # Initialize and update all submodules | |
# Step 3: Extract the version number from the tag (e.g., "v1.2.3" becomes "1.2.3") | |
- name: Extract Version Number | |
id: extract_version | |
run: echo "VERSION=$(echo ${GITHUB_REF#refs/tags/} | sed 's/^v//')" >> $GITHUB_ENV | |
# Step 4: Install wget and xz-utils | |
- name: Install wget and xz-utils | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y wget xz-utils | |
# Step 5: Download Toolchain | |
- name: Download and Extract Linaro Toolchain | |
run: | | |
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 | tar -xJ -C /opt/linaro-toolchain --strip-components=1 | |
# Step 6: Install Toolchain | |
- name: Set environment variables | |
run: | | |
echo "ARM_CROSS_COMPILE_TOOLCHAIN=/opt/linaro-toolchain" >> $GITHUB_ENV | |
echo "PATH=/opt/linaro-toolchain/bin:${PATH}" >> $GITHUB_ENV | |
# Step 7: Start building the SDK | |
- name: Start Building the InspireFace-Linux-armv7-rv1109rv1126 | |
run: | | |
bash command/build_cross_rv1109rv1126_armhf.sh | |
ls build | |
# Step 8: Zip SDK directory | |
- name: Zip SDK directory | |
run: | | |
zip -r inspireface-linux-armv7-rv1109rv1126-armhf-${{ env.VERSION }}.zip build/inspireface-linux-armv7-rv1109rv1126-armhf-${{ env.VERSION }} | |
stat inspireface-linux-armv7-rv1109rv1126-armhf-${{ env.VERSION }}.zip | |
# Step 9: Upload the zipped SDK files for the next job | |
- name: Upload SDK Artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: sdk_files | |
path: | | |
inspireface-linux-armv7-rv1109rv1126-armhf-${{ env.VERSION }}.zip | |
build_linux_aarch64: | |
name: Compile Linux-Aarch64 | |
runs-on: ubuntu-latest | |
steps: | |
# Step 1: Checkout the repository | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
# Step 2: Synchronize and update submodules recursively | |
- name: Update submodules | |
run: | | |
git submodule sync --recursive # Ensure submodule paths are up-to-date | |
git submodule update --init --recursive # Initialize and update all submodules | |
# Step 3: Extract the version number from the tag (e.g., "v1.2.3" becomes "1.2.3") | |
- name: Extract Version Number | |
id: extract_version | |
run: echo "VERSION=$(echo ${GITHUB_REF#refs/tags/} | sed 's/^v//')" >> $GITHUB_ENV | |
# Step 4: Install wget and xz-utils | |
- name: Install wget and xz-utils | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y wget xz-utils | |
# Step 5: Download Toolchain | |
- name: Download and Extract Linaro Toolchain | |
run: | | |
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 | tar -xJ -C /opt/linaro-toolchain --strip-components=1 | |
# Step 6: Install Toolchain | |
- name: Set environment variables | |
run: | | |
echo "ARM_CROSS_COMPILE_TOOLCHAIN=/opt/linaro-toolchain" >> $GITHUB_ENV | |
echo "PATH=/opt/linaro-toolchain/bin:${PATH}" >> $GITHUB_ENV | |
# Step 7: Start building the SDK | |
- name: Start Building the InspireFace-Linux-aarch64 | |
run: | | |
bash command/build_cross_aarch64.sh | |
ls build | |
# Step 8: Zip SDK directory | |
- name: Zip SDK directory | |
run: | | |
zip -r inspireface-linux-aarch64-${{ env.VERSION }}.zip build/inspireface-linux-aarch64-${{ env.VERSION }} | |
stat inspireface-linux-aarch64-${{ env.VERSION }}.zip | |
# Step 9: Upload the zipped SDK files for the next job | |
- name: Upload SDK Artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: sdk_files | |
path: | | |
inspireface-linux-aarch64-${{ env.VERSION }}.zip | |
release: | |
name: Release SDKs to GitHub | |
needs: [ build_linux_x86, build_armv7_armhf, build_armv7_rv1109rv1126_armhf, build_linux_aarch64] | |
runs-on: ubuntu-latest | |
steps: | |
# Step 1: Checkout the repository again | |
- name: Checkout Repository | |
uses: actions/checkout@v2 | |
# Step 2: Download the previously uploaded SDK files | |
- name: Download SDK Artifacts | |
uses: actions/download-artifact@v2 | |
with: | |
name: sdk_files | |
# Step 3: Extract the version number from the tag (e.g., "v1.2.3" becomes "1.2.3") | |
- name: Extract Version Number | |
id: extract_version | |
run: echo "VERSION=$(echo ${GITHUB_REF#refs/tags/} | sed 's/^v//')" >> $GITHUB_ENV | |
# Step 4: Create a GitHub Release and upload SDK files with the version number | |
- name: Create GitHub Release | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: | | |
inspireface-linux-x86-ubuntu18-${{ env.VERSION }}.zip | |
inspireface-linux-armv7-armhf-${{ env.VERSION }}.zip | |
inspireface-linux-armv7-rv1109rv1126-armhf-${{ env.VERSION }}.zip | |
inspireface-linux-aarch64-${{ env.VERSION }}.zip |