From 8536555d7fa8cb097c14642f9ec5191d499d8981 Mon Sep 17 00:00:00 2001 From: Andreea Andrisan Date: Mon, 10 Jun 2024 11:47:08 +0300 Subject: [PATCH] .github/workflows/docker-image-build.yml: automated docker images build This workflow will be triggered by Kuiper2.0 workflow build after the images were created. In this workflow, the images for 32 and 64 bits basic configurations will be downloaded and docker images will be automatically created from their rootfs folder. Signed-off-by: Andreea Andrisan --- .github/workflows/docker-image-build.yml | 67 ++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 .github/workflows/docker-image-build.yml diff --git a/.github/workflows/docker-image-build.yml b/.github/workflows/docker-image-build.yml new file mode 100644 index 0000000000..7c3881e2dc --- /dev/null +++ b/.github/workflows/docker-image-build.yml @@ -0,0 +1,67 @@ +name: docker image build +on: workflow_dispatch + +jobs: + Build: + runs-on: ubuntu-latest + strategy: + matrix: + kuiper_artifact: [kuiper_basic_32, kuiper_basic_64] + fail-fast: false + steps: + - name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_PASSWORD }} + + - name: Checkout Dockerfile for image building + uses: actions/checkout@v4 + with: + sparse-checkout: | + ci/Dockerfile + sparse-checkout-cone-mode: false + + - name: Download image + uses: dawidd6/action-download-artifact@v5 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + workflow: kuiper2_0-build.yml + branch: staging/kuiper2.0 + name: ${{ matrix.kuiper_artifact }} + repo: analogdevicesinc/adi-kuiper-gen + + - name: Create .tar file + run: | + sudo apt-get update + sudo apt-get install -y qemu-user-static + zip_file=$(ls *.zip) + unzip ${zip_file} -d . + img_file=$(ls *.img) + sudo losetup -fP ${img_file} + loop_device=$(losetup --list | grep "$(basename "ADI-Kuiper-Linux.*.img")" | cut -f1 -d' ') + mkdir rootfs + sudo mount "${loop_device}p2" ./rootfs + ( + cd rootfs + sudo tar -cf ../kuiper_image.tar . + ) + sudo umount ./rootfs + sudo losetup -d ${loop_device} + + - name: Test build + run: | + docker buildx create --name armbuilder + docker buildx use armbuilder + docker buildx build --builder armbuilder -t test_kuiper_image_arm --platform linux/arm --load -f ./ci/Dockerfile . + docker buildx build --builder armbuilder -t test_kuiper_image_arm64 --platform linux/arm64 --load -f ./ci/Dockerfile . + + - name: Build and push + id: docker_build + uses: docker/build-push-action@v2 + with: + push: true + tags: aandrisa/${{ matrix.kuiper_artifact }}:latest + file: ci/Dockerfile + context: . + platforms: linux/arm,linux/arm64