Skip to content

Merge pull request #36 from HyperInspire/feature/ci #16

Merge pull request #36 from HyperInspire/feature/ci

Merge pull request #36 from HyperInspire/feature/ci #16

name: Build and Release SDKs
# Trigger the workflow when pushing tags that match the pattern "v*"
on:
push:
tags:
- "v*"
# Set the global GitHub token environment variable
env:
GITHUB_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }}
jobs:
build:
name: Compile and Package SDKs
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: Build projects using Docker Compose
- name: Build SDKs with Docker Compose
run: |
docker-compose up
ls build
# Step 5: Zip each SDK directory with the version number
- name: Zip SDK Files
run: |
zip -r inspireface-linux-armv7-armhf-${{ env.VERSION }}.zip build/inspireface-linux-armv7-armhf-${{ env.VERSION }}/
zip -r inspireface-linux-armv7-rv1109rv1126-armhf-${{ env.VERSION }}.zip build/inspireface-linux-armv7-rv1109rv1126-armhf-${{ env.VERSION }}/
zip -r inspireface-linux-x86-ubuntu18-${{ env.VERSION }}.zip build/inspireface-linux-x86-ubuntu18-${{ env.VERSION }}/
# Step 6: 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
inspireface-linux-armv7-rv1109rv1126-armhf-${{ env.VERSION }}.zip
inspireface-linux-x86-ubuntu18-${{ env.VERSION }}.zip
release:
name: Release SDKs to GitHub
needs: build
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-armv7-armhf-${{ env.VERSION }}.zip
inspireface-linux-armv7-rv1109rv1126-armhf-${{ env.VERSION }}.zip
inspireface-linux-x86-ubuntu18-${{ env.VERSION }}.zip