CI: Add building Tizen 9.0 -> Tizen 9.0 deltas 87/315787/1
authorMateusz Moscicki <m.moscicki2@partner.samsung.com>
Wed, 7 Aug 2024 11:14:54 +0000 (13:14 +0200)
committerMateusz Moscicki/System (PLT) /SRPOL/Staff Engineer/Samsung Electronics <m.moscicki2@samsung.com>
Wed, 7 Aug 2024 15:40:13 +0000 (17:40 +0200)
Deltas built for Tizen 9.0 -> Tizen 9.0 are platform deltas only

Change-Id: Ic47a2c7b78b1944b7d1b8e0b43b6b1634f8c5c1f

.github/actions/build-steps/action.yaml [new file with mode: 0644]
.github/workflows/test-image-build.yml

diff --git a/.github/actions/build-steps/action.yaml b/.github/actions/build-steps/action.yaml
new file mode 100644 (file)
index 0000000..96c16d6
--- /dev/null
@@ -0,0 +1,81 @@
+name: Deltas build steps
+inputs:
+  include_boot:
+    description: "Include boot"
+    required: true
+    type: "boolean"
+  old:
+    description: "Old version"
+    required: true
+  new:
+    description: "New version"
+    required: true
+  variant:
+    description: "Variant"
+    required: true
+  target:
+    description: "Target"
+    required: true
+  version:
+    description: "Version"
+    required: true
+  arch:
+    description: "Architecture"
+    required: true
+  docker_tag:
+    description: "Docker tag"
+    required: true
+  bart_id:
+    description: "Bart ID"
+    required: true
+  bart_key:
+    description: "Bart KEY"
+    required: true
+  github_token:
+    description: "Github token"
+    required: true
+  bart_repo:
+    decription: "Bart repo"
+  bart_output_dir:
+    decription: "Bart output dir"
+runs:
+  using: "composite"
+  steps:
+    - name: Checkout sources
+      uses: code-actions/checkout@v4
+
+    - name: Prepare environment
+      shell: bash
+      id: prepare_env
+      run: |
+        IMAGE_TYPE=${{ inputs.include_boot == 'true' && 'all' || 'platform' }}
+        echo "IMAGE_TYPE=${IMAGE_TYPE}" >> "$GITHUB_OUTPUT"
+
+        echo "RUN_NAME=${{ inputs.old }}_${{ inputs.new }}_${{ inputs.variant }}_${{ inputs.target }}_${IMAGE_TYPE}_${{ inputs.arch }}" >> "$GITHUB_OUTPUT"
+
+        BOOT_ARCH=$([ ${{ inputs.arch }} == "aarch64" ] && echo arm64 || echo ${{ inputs.arch }} )
+        echo "BOOT_OLD=https://download.tizen.org/snapshots/TIZEN/${{ inputs.old }}/${{ inputs.old }}-Unified/${{ inputs.version }}/images/standard/tizen-boot-${BOOT_ARCH}-${{ inputs.target }}/" >> "$GITHUB_OUTPUT"
+        echo "BOOT_NEW=https://download.tizen.org/snapshots/TIZEN/${{ inputs.new }}/${{ inputs.new }}-Unified/latest/images/standard/tizen-boot-${BOOT_ARCH}-${{ inputs.target }}/" >> "$GITHUB_OUTPUT"
+
+        echo "MAIN_OLD=https://download.tizen.org/snapshots/TIZEN/${{ inputs.old }}/${{ inputs.old }}-Unified/${{ inputs.version }}/images/standard/tizen-${{ inputs.variant }}-${{ inputs.arch }}/" >> "$GITHUB_OUTPUT"
+        echo "MAIN_NEW=https://download.tizen.org/snapshots/TIZEN/${{ inputs.new }}/${{ inputs.new }}-Unified/latest/images/standard/tizen-${{ inputs.variant }}-${{ inputs.arch }}/" >> "$GITHUB_OUTPUT"
+
+    - name: Build delta images
+      uses: ./mk_delta  # For external action execution, use `tizen/upgrade-tools/mk_delta@tizen`.
+      with:
+        docker_image_tag: ${{ inputs.docker_tag }}
+        bart_id: ${{ inputs.bart_id }}
+        bart_key: ${{ inputs.bart_key }}
+        github_token: ${{ inputs.github_token }}
+        old_images: |
+          ${{ inputs.include_boot == 'true' && steps.prepare_env.outputs.BOOT_OLD || '' }}
+          ${{ steps.prepare_env.outputs.MAIN_OLD }}
+        new_images: |
+          ${{ inputs.include_boot == 'true' && steps.prepare_env.outputs.BOOT_NEW || '' }}
+          ${{ steps.prepare_env.outputs.MAIN_NEW }}
+        image_type: ${{ steps.prepare_env.outputs.IMAGE_TYPE }}
+        run_name: ${{ steps.prepare_env.outputs.RUN_NAME }}
+        target: ${{ inputs.target }}
+        arch: ${{ inputs.arch }}
+        output_repository: ${{ inputs.bart_repo }}
+        output_directory: ${{ inputs.bart_output_dir }}
index e35861d37bb84a64cac83ce69c7684f3f88ee915..7d9431346a1a352678c5c60ec4ec1e7c53375399 100644 (file)
@@ -23,7 +23,8 @@ jobs:
       - code-default
     outputs:
       docker_tag: ${{ steps.environment.outputs.docker_tag }}
-      versions: ${{ steps.versions.outputs.versions }}
+      versions8: ${{ steps.versions8.outputs.versions }}
+      versions9: ${{ steps.versions9.outputs.versions }}
 
     steps:
       - name: Get Docker tag for this branch
@@ -39,18 +40,37 @@ jobs:
           bart_key: ${{ secrets.BART_KEY }}
           search_pattern: "${{ env.BART_REPO }}/${{ env.BART_OUTPUT_DIR }}/Tizen8.0_Unified/"
           target_quota: ${{ env.BART_TARGET_QUOTA }}
-      - name: Prepare last 3 versions
-        id: versions
+      - name: Cleanup Tizen 9-9 artifacts
+        uses: srpol-ar-glasses/actions/bart-size-cleanup@main
+        with:
+          bart_id: ${{ secrets.BART_ID }}
+          bart_key: ${{ secrets.BART_KEY }}
+          search_pattern: "${{ env.BART_REPO }}/${{ env.BART_OUTPUT_DIR }}/Tizen9.0_Unified/"
+          target_quota: ${{ env.BART_TARGET_QUOTA }}
+      - name: Prepare last 3 versions for Tizen 8
+        id: versions8
         run: |
           versions=$(curl https://download.tizen.org/snapshots/TIZEN/Tizen-8.0/Tizen-8.0-Unified/ \
                    | grep -e "href=.tizen" \
                    | sed -e 's/^.*>\([^<]\+\)<.*$/\1/' \
-                   | tail -n 3 \
+                   | tail -n 4 \
+                   | head -n 3 \
                    | awk 'BEGIN {ORS=""; print "["} {if (FNR != 1) print ", "; printf "\"%s\"",$1;} END {print "]\n"}')
           echo "versions=$versions" >> "$GITHUB_OUTPUT"
+          cat $GITHUB_OUTPUT
+      - name: Prepare last 3 versions for Tizen
+        id: versions9
+        run: |
+          versions=$(curl https://download.tizen.org/snapshots/TIZEN/Tizen/Tizen-Unified/ \
+                   | grep -e "href=.tizen" \
+                   | sed -e 's/^.*>\([^<]\+\)<.*$/\1/' \
+                   | tail -n 4 \
+                   | head -n 3 \
+                   | awk 'BEGIN {ORS=""; print "["} {if (FNR != 1) print ", "; printf "\"%s\"",$1;} END {print "]\n"}')
+          echo "versions=$versions" >> "$GITHUB_OUTPUT"
+          cat $GITHUB_OUTPUT
 
-
-  build-delta:
+  build-delta-8:
     runs-on:
       - code-linux
       - code-large
@@ -62,7 +82,7 @@ jobs:
         new:
           - Tizen
         version:
-          - ${{ fromJSON(needs.prepare.outputs.versions) }}
+          - ${{ fromJSON(needs.prepare.outputs.versions8) }}
         variant:
           - headed
           - headless
@@ -82,46 +102,79 @@ jobs:
     steps:
       - name: Checkout sources
         uses: code-actions/checkout@v4
-
-      - name: Prepare environment
-        run: |
-          IMAGE_TYPE=${{ matrix.include_boot && 'all' || 'platform' }}
-          echo "IMAGE_TYPE=${IMAGE_TYPE}" >> "$GITHUB_ENV"
-
-          echo "RUN_NAME=${{ matrix.old }}_${{ matrix.new }}_${{ matrix.variant }}_${{ matrix.target }}_${IMAGE_TYPE}_${{ matrix.arch }}" >> "$GITHUB_ENV"
-
-          BOOT_ARCH=$([ ${{ matrix.arch }} == "aarch64" ] && echo arm64 || echo ${{ matrix.arch }} )
-          echo "BOOT_OLD=https://download.tizen.org/snapshots/TIZEN/${{ matrix.old }}/${{ matrix.old }}-Unified/${{ matrix.version }}/images/standard/tizen-boot-${BOOT_ARCH}-${{ matrix.target }}/" >> "$GITHUB_ENV"
-          echo "BOOT_NEW=https://download.tizen.org/snapshots/TIZEN/${{ matrix.new }}/${{ matrix.new }}-Unified/latest/images/standard/tizen-boot-${BOOT_ARCH}-${{ matrix.target }}/" >> "$GITHUB_ENV"
-
-          echo "MAIN_OLD=https://download.tizen.org/snapshots/TIZEN/${{ matrix.old }}/${{ matrix.old }}-Unified/${{ matrix.version }}/images/standard/tizen-${{ matrix.variant }}-${{ matrix.arch }}/" >> "$GITHUB_ENV"
-          echo "MAIN_NEW=https://download.tizen.org/snapshots/TIZEN/${{ matrix.new }}/${{ matrix.new }}-Unified/latest/images/standard/tizen-${{ matrix.variant }}-${{ matrix.arch }}/" >> "$GITHUB_ENV"
-
-      - name: Build delta images
-        uses: ./mk_delta  # For external action execution, use `tizen/upgrade-tools/mk_delta@tizen`.
+      - name: Build deltas Tizen-8.0 -> Tizen-9.0
+        uses: ./.github/actions/build-steps
         with:
-          docker_image_tag: ${{ needs.prepare.outputs.docker_tag }}
+          include_boot: ${{ matrix.include_boot }}
+          old: ${{ matrix.old }}
+          new: ${{ matrix.new }}
+          variant: ${{ matrix.variant }}
+          target: ${{ matrix.target }}
+          version: ${{ matrix.version }}
+          arch: ${{ matrix.arch }}
+          docker_tag: ${{ needs.prepare.outputs.docker_tag }}
           bart_id: ${{ secrets.BART_ID }}
           bart_key: ${{ secrets.BART_KEY }}
           github_token: ${{ secrets.GITHUB_TOKEN }}
-          old_images: |
-            ${{ matrix.include_boot && env.BOOT_OLD || '' }}
-            ${{ env.MAIN_OLD }}
-          new_images: |
-            ${{ matrix.include_boot && env.BOOT_NEW || '' }}
-            ${{ env.MAIN_NEW }}
-          image_type: ${{ env.IMAGE_TYPE }}
-          run_name: ${{ env.RUN_NAME }}
+          bart_repo: ${{ env.BART_REPO }}
+          bart_output_dir: ${{ env.BART_OUTPUT_DIR }}
+
+  build-delta-9:
+    runs-on:
+      - code-linux
+      - code-large
+    needs: prepare
+    strategy:
+      matrix:
+        old:
+          - Tizen
+        new:
+          - Tizen
+        version:
+          - ${{ fromJSON(needs.prepare.outputs.versions9) }}
+        variant:
+          - headed
+          - headless
+        arch:
+          - armv7hl
+          - armv7l
+          - aarch64
+        target:
+          - rpi4
+        include_boot:
+          - false
+        exclude:
+          - variant: headless
+            arch: armv7hl
+
+    steps:
+      - name: Checkout sources
+        uses: code-actions/checkout@v4
+      - name: Build deltas Tizen-9.0 -> Tizen-9.0
+        uses: ./.github/actions/build-steps
+        with:
+          include_boot: ${{ matrix.include_boot }}
+          old: ${{ matrix.old }}
+          new: ${{ matrix.new }}
+          variant: ${{ matrix.variant }}
           target: ${{ matrix.target }}
+          version: ${{ matrix.version }}
           arch: ${{ matrix.arch }}
-          output_repository: ${{ env.BART_REPO }}
-          output_directory: ${{ env.BART_OUTPUT_DIR }}
+          docker_tag: ${{ needs.prepare.outputs.docker_tag }}
+          bart_id: ${{ secrets.BART_ID }}
+          bart_key: ${{ secrets.BART_KEY }}
+          github_token: ${{ secrets.GITHUB_TOKEN }}
+          bart_repo: ${{ env.BART_REPO }}
+          bart_output_dir: ${{ env.BART_OUTPUT_DIR }}
+
 
   summarize:
     runs-on:
       - code-linux
       - code-large
-    needs: build-delta
+    needs:
+      - build-delta-8
+      - build-delta-9
     if: ${{ always() }}
 
     steps: