Skip to content

[DLS] [U22/U24] Build weekly imgs #1

[DLS] [U22/U24] Build weekly imgs

[DLS] [U22/U24] Build weekly imgs #1

name: "[DLS] [U22/U24] Build weekly imgs"
run-name: "[DLS] [U22/U24] Build weekly imgs"
on:
schedule:
- cron: '0 14 * * 2' # 14:00 UTC
workflow_dispatch:
permissions:
packages: write
contents: read
jobs:
build-dls-deb-img:
name: Build DLS ${{ matrix.ubuntu_version }} .deb and deb img
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- path_deb: ./edge-ai-libraries-repo/libraries/dl-streamer/docker/onebinary/ubuntu22/dlstreamer_deb_package_ubuntu22.Dockerfile
path_dev: ./edge-ai-libraries-repo/libraries/dl-streamer/docker/devel/ubuntu22/dlstreamer_dev_ubuntu22.Dockerfile
ubuntu_version: ubuntu22
build_arg: Release
- path_deb: ./edge-ai-libraries-repo/libraries/dl-streamer/docker/onebinary/ubuntu24/dlstreamer_deb_package_ubuntu24.Dockerfile
path_dev: ./edge-ai-libraries-repo/libraries/dl-streamer/docker/devel/ubuntu24/dlstreamer_dev_ubuntu24.Dockerfile
ubuntu_version: ubuntu24
build_arg: Release
outputs:
ubuntu22_image: ${{ steps.save-image-ubuntu22.outputs.image }}
ubuntu24_image: ${{ steps.save-image-ubuntu24.outputs.image }}
env:
dev-release-img: ghcr.io/${{ github.repository }}/dev-release-img-${{ matrix.ubuntu_version }}:latest
dev-release-img-cached: ghcr.io/${{ github.repository }}/dev-release-img-${{ matrix.ubuntu_version }}:buildcache
dlstreamer-version: "2025.0.1.3"
steps:
- name: Check out edge-ai-libraries repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #4.2.2
with:
path: edge-ai-libraries-repo
- name: Init submodules
run: |
cd edge-ai-libraries-repo
git submodule update --init libraries/dl-streamer/thirdparty/spdlog
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 #3.10.0
- name: Log in to GitHub Container Registry
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 #3.4.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push Docker dev release img
run: |
docker buildx build \
--push \
--tag ${{ env.dev-release-img}} \
--cache-from=${{ env.dev-release-img-cached }} \
--cache-to=type=registry,ref=${{ env.dev-release-img-cached }},mode=max \
--build-arg DLSTREAMER_VERSION=${{ env.dlstreamer-version }} \
--build-arg DLSTREAMER_BUILD_NUMBER=deb-pkg-${{ matrix.ubuntu_version }} \
--build-arg BUILD_ARG=${{ matrix.build_arg }} \
-f ${{ matrix.path_dev }} \
./edge-ai-libraries-repo/libraries/dl-streamer
- name: Build deb pkg img using dev release img
run: |
docker build \
--tag ghcr.io/${{ github.repository }}/dls-deb-pkg-${{ matrix.ubuntu_version }}:${{ github.sha }} \
--build-arg DLSTREAMER_VERSION=${{ env.dlstreamer-version }} \
--build-arg DLSTREAMER_BUILD_NUMBER=deb-pkg-${{ matrix.ubuntu_version }} \
--build-arg BASE_IMAGE="${{ env.dev-release-img }}" \
-f ${{ matrix.path_deb }} \
./edge-ai-libraries-repo/libraries/dl-streamer
- name: Extract .deb packages using script
run: |
chmod +x ./edge-ai-libraries-repo/libraries/dl-streamer/scripts/extract_and_verify_debs.sh
./edge-ai-libraries-repo/libraries/dl-streamer/scripts/extract_and_verify_debs.sh ghcr.io/${{ github.repository }}/dls-deb-pkg-${{ matrix.ubuntu_version }}:${{ github.sha }}
ls
cp -r deb_packages ./edge-ai-libraries-repo/libraries/dl-streamer
- name: Build Docker img from .deb
run: |
docker build \
-t ghcr.io/${{ github.repository }}/dls-deb-${{ matrix.ubuntu_version }}:latest \
-f ./edge-ai-libraries-repo/libraries/dl-streamer/docker/onebinary/${{ matrix.ubuntu_version }}/dlstreamer_${{ matrix.ubuntu_version }}.Dockerfile \
./edge-ai-libraries-repo/libraries/dl-streamer
- name: Push Docker img from .deb
run: |
docker push ghcr.io/${{ github.repository }}/dls-deb-${{ matrix.ubuntu_version }}:latest
- name: Save Ubuntu 22 image info
id: save-image-ubuntu22
if: ${{ matrix.ubuntu_version == 'ubuntu22' }}
run: echo "image=ghcr.io/${{ github.repository }}/dls-deb-${{ matrix.ubuntu_version }}:latest" >> "$GITHUB_OUTPUT"
- name: Save Ubuntu 24 image info
id: save-image-ubuntu24
if: ${{ matrix.ubuntu_version == 'ubuntu24' }}
run: echo "image=ghcr.io/${{ github.repository }}/dls-deb-${{ matrix.ubuntu_version }}:latest" >> "$GITHUB_OUTPUT"
- name: Clean up
if: always()
run: |
rm -rf edge-ai-libraries-repo
docker rmi ghcr.io/${{ github.repository }}/dls-deb-${{ matrix.ubuntu_version }}:latest || true
build-dls-dev-img:
name: Build DLS ${{ matrix.ubuntu_version }} dev debug img
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- path_dev: ./edge-ai-libraries-repo/libraries/dl-streamer/docker/devel/ubuntu22/dlstreamer_dev_ubuntu22.Dockerfile
ubuntu_version: ubuntu22
build_arg: Debug
- path_dev: ./edge-ai-libraries-repo/libraries/dl-streamer/docker/devel/ubuntu24/dlstreamer_dev_ubuntu24.Dockerfile
ubuntu_version: ubuntu24
build_arg: Debug
env:
dev-debug-img: ghcr.io/${{ github.repository }}/dev-debug-img-${{ matrix.ubuntu_version }}:latest
dev-debug-img-cached: ghcr.io/${{ github.repository }}/dev-debug-img-${{ matrix.ubuntu_version }}:buildcache
steps:
- name: Check out edge-ai-libraries repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #4.2.2
with:
path: edge-ai-libraries-repo
- name: Init submodules
run: |
cd edge-ai-libraries-repo
git submodule update --init libraries/dl-streamer/thirdparty/spdlog
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 #3.10.0
- name: Log in to GitHub Container Registry
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 #3.4.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push Docker dev img
run: |
docker buildx build \
--push \
--build-arg BUILD_ARG=${{ matrix.build_arg }} \
--tag ${{ env.dev-debug-img }} \
--cache-from=type=registry,ref=${{ env.dev-debug-img-cached }} \
--cache-to=type=registry,ref=${{ env.dev-debug-img-cached }},mode=max \
-f ${{ matrix.path_dev }} \
./edge-ai-libraries-repo/libraries/dl-streamer
- name: Clean up
if: always()
run: |
rm -rf edge-ai-libraries-repo
docker rmi ghcr.io/${{ github.repository }}/dls-${{ matrix.ubuntu_version }}:latest || true
build-dls-pipeline-server-image:
needs: build-dls-deb-img
name: Build DLS Pipeline Server ${{ matrix.ubuntu_version }} img
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- ubuntu_version: ubuntu22
steps:
- name: Check out edge-ai-libraries repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #4.2.2
with:
path: edge-ai-libraries-repo
- name: Init submodules
run: |
cd edge-ai-libraries-repo
git submodule update --init libraries/dl-streamer/thirdparty/spdlog
- name: Log in to GitHub Container Registry
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 #3.4.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build dls-pipeline-server-img
run: |
cd edge-ai-libraries-repo/microservices/dlstreamer-pipeline-server/docker
export BASE_IMAGE=${{ needs.build-dls-deb-img.outputs.ubuntu22_image }}
export DLSTREAMER_PIPELINE_SERVER_IMAGE=ghcr.io/${{ github.repository }}/intel/dlstreamer-pipeline-server:latest
export DLSTREAMER_PIPELINE_SERVER_DOCKERFILE=dlstreamer-pipeline-server.Dockerfile
docker compose build --no-cache --pull
- name: Push Docker img
run: |
docker push ghcr.io/${{ github.repository }}/intel/dlstreamer-pipeline-server:latest
- name: Clean up
if: always()
run: |
rm -rf edge-ai-libraries-repo
docker rmi ghcr.io/${{ github.repository }}/intel/dlstreamer-pipeline-server:latest || true