CI: tools: directly extract prebuilt tools in container ci-use-copy
authorChristian Marangi <ansuelsmth@gmail.com>
Thu, 10 Nov 2022 18:53:15 +0000 (19:53 +0100)
committerChristian Marangi <ansuelsmth@gmail.com>
Fri, 11 Nov 2022 17:47:08 +0000 (18:47 +0100)
Directly extract prebuilt tools in container instead of creating an
archieve and extracting it later in other workflows.

Update kernel and packages workflow to support this new implementation.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
.github/workflows/Dockerfile.tools
.github/workflows/kernel.yml
.github/workflows/packages.yml
.github/workflows/tools.yml

index c2ae7dc89659abb3631a724a9dce4b10c45612c0..9266983a3fe7b3d81b82a4c908356bb19085541a 100644 (file)
@@ -1,3 +1,3 @@
 FROM registry.gitlab.com/openwrt/buildbot/buildworker-3.4.1
 
-COPY --chown=buildbot:buildbot tools.tar /tools.tar
+ADD tools.tar /prebuilt_tools
index 6dc40dd0050dd7258a9c99babcb201a6dcef69ac..0917d9b69f1011eb4f8b7bed197c35d918690d6b 100644 (file)
@@ -98,6 +98,16 @@ jobs:
           echo "TARGET=$TARGET" >> "$GITHUB_ENV"
           echo "SUBTARGET=$SUBTARGET" >> "$GITHUB_ENV"
 
+      - name: Prepare prebuilt tools
+        shell: su buildbot -c "sh -e {0}"
+        working-directory: openwrt
+        run: |
+          mkdir -p staging_dir build_dir
+          ln -s /prebuilt_tools/staging_dir/host staging_dir/host
+          ln -s /prebuilt_tools/build_dir/host build_dir/host
+
+          ./scripts/ext-tools.sh --refresh
+
       - name: Parse toolchain file
         working-directory: openwrt
         run: |
@@ -132,11 +142,6 @@ jobs:
           wget -O - https://downloads.cdn.openwrt.org/snapshots/targets/${{ env.TARGET }}/${{ env.SUBTARGET }}/${TOOLCHAIN_FILE}.tar.xz \
             | tar --xz -xf -
 
-      - name: Extract prebuilt tools
-        shell: su buildbot -c "sh -e {0}"
-        working-directory: openwrt
-        run: ./scripts/ext-tools.sh --tools /tools.tar
-
       - name: Configure external toolchain
         shell: su buildbot -c "sh -e {0}"
         working-directory: openwrt
@@ -215,10 +220,15 @@ jobs:
           echo "TARGET=$TARGET" >> "$GITHUB_ENV"
           echo "SUBTARGET=$SUBTARGET" >> "$GITHUB_ENV"
 
-      - name: Extract prebuilt tools
+      - name: Prepare prebuilt tools
         shell: su buildbot -c "sh -e {0}"
         working-directory: openwrt
-        run: ./scripts/ext-tools.sh --tools /tools.tar
+        run: |
+          mkdir -p staging_dir build_dir
+          ln -s /prebuilt_tools/staging_dir/host staging_dir/host
+          ln -s /prebuilt_tools/build_dir/host build_dir/host
+
+          ./scripts/ext-tools.sh --refresh
 
       - name: Setup Config
         shell: su buildbot -c "sh -e {0}"
index 49d795c122a6a18b5ba4be1b70597e35f2bb49ab..5722c0523165fb4f304ba8398c4f542fcfa59702 100644 (file)
@@ -100,10 +100,15 @@ jobs:
           wget -O - https://downloads.cdn.openwrt.org/snapshots/targets/${{ env.TARGET }}/${{ env.SUBTARGET }}/${TOOLCHAIN_FILE}.tar.xz \
             | tar --xz -xf -
 
-      - name: Extract prebuilt tools
+      - name: Prepare prebuilt tools
         shell: su buildbot -c "sh -e {0}"
         working-directory: openwrt
-        run: ./scripts/ext-tools.sh --tools /tools.tar
+        run: |
+          mkdir -p staging_dir build_dir
+          ln -s /prebuilt_tools/staging_dir/host staging_dir/host
+          ln -s /prebuilt_tools/build_dir/host build_dir/host
+
+          ./scripts/ext-tools.sh --refresh
 
       - name: Create configuration
         shell: su buildbot -c "sh -e {0}"
index 5f6ded95c9639342892a966be34d4d65af2b1e1c..d3ce34efd471f4330bb70fe441265555ce812929 100644 (file)
@@ -145,11 +145,13 @@ jobs:
           name: linux-buildbot-config
           path: openwrt/.config
 
+      # github CI have some char blacklisted in path
+      # We have to tar the tools first to pass them to the upload job
       - name: Archive prebuilt tools
         if: github.event_name == 'push'
         shell: su buildbot -c "sh -e {0}"
         working-directory: openwrt
-        run: tar --mtime=now -cf tools.tar staging_dir/host build_dir/host
+        run: tar -cf tools.tar staging_dir/host build_dir/host
 
       - name: Upload prebuilt tools
         if: github.event_name == 'push'