Merge pull request #36 from HyperInspire/feature/ci #16
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: 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 |