From b95b9605ce89600c72f5e31f1d0ff03ccf020f87 Mon Sep 17 00:00:00 2001 From: Deeptanshu Sekhri Date: Tue, 15 Jul 2025 12:28:41 +0100 Subject: [PATCH 01/14] chore(deps): pin Python dependencies in requirements.txt - hjson to 3.1.0 - pytest to 8.4.1 - pre-commit to 4.2.0 - tensorflow to 2.19.0 Signed-off-by: Deeptanshu Sekhri --- requirements.txt | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 requirements.txt diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..56d9d19 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,9 @@ +# +# SPDX-FileCopyrightText: Copyright 2025 Arm Limited and/or its affiliates +# +# SPDX-License-Identifier: Apache-2.0 +# +hjson==3.1.0 +pytest==8.4.1 +pre-commit==4.2.0 +tensorflow==2.19.0 -- GitLab From 832d2692defffde662c9f30c0fa7979fd8434158 Mon Sep 17 00:00:00 2001 From: Deeptanshu Sekhri Date: Tue, 15 Jul 2025 12:27:42 +0100 Subject: [PATCH 02/14] feat(ci): add GitLab CI pipeline with lint, build, and test stages - Add `lint` stage using `pre-commit` - Add `build` stage with Bazel clean/build, Python wheel creation, and 7 day artifact retention - Add test stage with `test-cli` with JUnit reports and 7 day artifact retention Signed-off-by: Deeptanshu Sekhri --- .gitlab-ci.yml | 122 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..2281946 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,122 @@ +# +# SPDX-FileCopyrightText: Copyright 2025 Arm Limited and/or its affiliates +# +# SPDX-License-Identifier: Apache-2.0 +# + +# Auto-cancel outdated runs +workflow: + auto_cancel: + on_new_commit: interruptible + +# Global runner & version variables +variables: + BASE_IMAGE_LINUX: "tcft-base-linux_x86_64:latest" + PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip" + +.ci-build-and-test: &ci-build-and-test + - OS: "linux_x86" + IMAGE: "tcft-base-linux_x86_64:latest" + TAGS: "linux-x86" + +# Shared cache +cache: + key: "${CI_COMMIT_REF_SLUG}" + policy: pull-push + paths: + - .cache/pip + - .cache/bazel + +# Pipeline stages +stages: + - lint + - build + - test + +# Standard timeout and gating rules +.standard-rules: + rules: + - if: $CI_PIPELINE_SOURCE == 'merge_request_event' + - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH + - if: $CI_COMMIT_TAG && $CI_COMMIT_REF_PROTECTED == "true" + - if: $CI_PIPELINE_SOURCE == "push" + +# Base runner settings +.base-job: &base-job + interruptible: true + retry: + max: 2 + when: + - always + - job_execution_timeout + - stuck_or_timeout_failure + - runner_system_failure + + +# Lint Step +lint: + extends: + - .standard-rules + - .base-job + stage: lint + timeout: 5m + image: $BASE_IMAGE_LINUX + tags: + - linux-x86 + script: + - whoami && id -u + - pre-commit install + - pre-commit run --config .pre-commit-config.yaml --all-files + +# Build Step +build: + extends: + - .standard-rules + - .base-job + stage: build + needs: + - lint + timeout: 20m + parallel: + matrix: *ci-build-and-test + image: $IMAGE + tags: + - $TAGS + variables: + OS: $OS + script: + - bazel version + - bazel clean --expunge + - python -m build --wheel + artifacts: + expire_in: 7 days + paths: + - dist/*.whl + +# CLI tests +test-cli: + extends: + - .standard-rules + - .base-job + stage: test + needs: + - job: build + artifacts: true + timeout: 15m + parallel: + matrix: *ci-build-and-test + image: $IMAGE + tags: + - $TAGS + variables: + OS: $OS + script: + - python -m pip install dist/*.whl + - python -m pytest -v tests/test_cli.py --log-cli-level=DEBUG --junit-xml=junit-cli-${OS}.xml + artifacts: + when: always + expire_in: 7 days + reports: + junit: junit-cli-${OS}.xml + paths: + - junit-cli-${OS}.xml -- GitLab From baa7189776a09719996d63dd7fbc67dd542bf5bb Mon Sep 17 00:00:00 2001 From: Deeptanshu Sekhri Date: Tue, 15 Jul 2025 12:33:35 +0100 Subject: [PATCH 03/14] feat(ci-docker): add Linux Dockerfile for CI environment - Creates an image based on Ubuntu 24.04 - Installs essential tools to run CI (clang, git, build-essential, Python3, Bazelisk) - Installs python packages from pinned requirements.txt - Tested locally for all CI stages Signed-off-by: Deeptanshu Sekhri --- docker/Dockerfile.linux | 68 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 docker/Dockerfile.linux diff --git a/docker/Dockerfile.linux b/docker/Dockerfile.linux new file mode 100644 index 0000000..f05aba4 --- /dev/null +++ b/docker/Dockerfile.linux @@ -0,0 +1,68 @@ +# syntax=docker/dockerfile:1.4 +# +# SPDX-FileCopyrightText: Copyright 2025 Arm Limited and/or its affiliates +# +# SPDX-License-Identifier: Apache-2.0 +# + +# Build arguments and base +ARG UBUNTU_VERSION=24.04 +FROM ubuntu:${UBUNTU_VERSION} + +# overrideable at build time +ARG CI_USER=tcftciuser +ARG TARGETARCH=amd64 +ARG BAZELISK_VERSION=1.26.0 + + +# Environment & user setup +ENV DEBIAN_FRONTEND=noninteractive \ + XDG_CACHE_HOME=/cache \ + PIP_CACHE_DIR=/cache/pip \ + HOME=/home/${CI_USER} + +# create non-root user and cache/workspace dirs +# we dont want CI runner to have root priviledges +RUN useradd --create-home --shell /bin/bash ${CI_USER} \ + && mkdir -p "${XDG_CACHE_HOME}" "${PIP_CACHE_DIR}" /workspace \ + && chown -R "${CI_USER}:${CI_USER}" "${XDG_CACHE_HOME}" "${PIP_CACHE_DIR}" /workspace + +# Install dependencies +RUN --mount=type=cache,target=/var/cache/apt \ + --mount=type=cache,target=/var/lib/apt \ + apt-get update && \ + apt-get install -y --no-install-recommends \ + ca-certificates \ + curl \ + clang \ + clang-format \ + git \ + build-essential \ + python3 \ + python3-pip \ + python3-venv && \ + rm -rf /var/lib/apt/lists/* + +# Add Bazelisk +RUN curl -fsSL \ + "https://github.com/bazelbuild/bazelisk/releases/download/v${BAZELISK_VERSION}/bazelisk-linux-${TARGETARCH}" \ + -o /usr/local/bin/bazel \ + && chmod +x /usr/local/bin/bazel + +# Setup Python virtualenv and install packages +COPY --chown=${CI_USER}:${CI_USER} requirements.txt /tmp/requirements.txt +RUN python3 -m venv /opt/venv && \ + /opt/venv/bin/pip install --upgrade pip build && \ + /opt/venv/bin/pip install -r /tmp/requirements.txt && \ + chown -R "${CI_USER}:${CI_USER}" /opt/venv + +ENV PATH="/opt/venv/bin:${PATH}" + +# Final user and perform healthcheck +USER ${CI_USER} +WORKDIR /workspace + +HEALTHCHECK --interval=30s --timeout=5s \ + CMD bash -lc "command -v bazel && command -v python3" || exit 1 + +CMD ["bash"] -- GitLab From bf9a66744ff55fcb298dce9bfbdd5a83f89138c0 Mon Sep 17 00:00:00 2001 From: Deeptanshu Sekhri Date: Tue, 15 Jul 2025 12:37:45 +0100 Subject: [PATCH 04/14] feat(ci-docker): add build script to generate Linux CI Docker image Signed-off-by: Deeptanshu Sekhri --- docker/build_linux.sh | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100755 docker/build_linux.sh diff --git a/docker/build_linux.sh b/docker/build_linux.sh new file mode 100755 index 0000000..6352f44 --- /dev/null +++ b/docker/build_linux.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash +# +# SPDX-FileCopyrightText: Copyright 2025 Arm Limited and/or its affiliates +# +# SPDX-License-Identifier: Apache-2.0 +# + +# Image Configuration +IMAGE_NAME="tcft-base-linux_x86_64" +IMAGE_TAG="latest" +DOCKERFILE="Dockerfile.linux" + +export DOCKER_BUILDKIT=1 + +# Build Image +docker build \ + -f "docker/${DOCKERFILE}" \ + -t "${IMAGE_NAME}:${IMAGE_TAG}" \ + . + +echo "Image created with tag: ${IMAGE_NAME}:${IMAGE_TAG}" -- GitLab From af35a305850b6482e2655796a343403a3767718c Mon Sep 17 00:00:00 2001 From: Deeptanshu Sekhri Date: Fri, 18 Jul 2025 10:49:09 +0100 Subject: [PATCH 05/14] chore(ci): update runner tags and cleanup variables Signed-off-by: Deeptanshu Sekhri --- .gitlab-ci.yml | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2281946..776a1eb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -14,6 +14,10 @@ variables: BASE_IMAGE_LINUX: "tcft-base-linux_x86_64:latest" PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip" +.runner-tags: &runner-tags + - amd64 + - tosa-static + .ci-build-and-test: &ci-build-and-test - OS: "linux_x86" IMAGE: "tcft-base-linux_x86_64:latest" @@ -61,8 +65,7 @@ lint: stage: lint timeout: 5m image: $BASE_IMAGE_LINUX - tags: - - linux-x86 + tags: *runner-tags script: - whoami && id -u - pre-commit install @@ -80,10 +83,7 @@ build: parallel: matrix: *ci-build-and-test image: $IMAGE - tags: - - $TAGS - variables: - OS: $OS + tags: *runner-tags script: - bazel version - bazel clean --expunge @@ -106,10 +106,7 @@ test-cli: parallel: matrix: *ci-build-and-test image: $IMAGE - tags: - - $TAGS - variables: - OS: $OS + tags: *runner-tags script: - python -m pip install dist/*.whl - python -m pytest -v tests/test_cli.py --log-cli-level=DEBUG --junit-xml=junit-cli-${OS}.xml -- GitLab From 93f6aedf15f01625b413cde63f6cea10d06eeeef Mon Sep 17 00:00:00 2001 From: Deeptanshu Sekhri Date: Fri, 18 Jul 2025 10:51:55 +0100 Subject: [PATCH 06/14] chore(ci): updating comments and debug prints Signed-off-by: Deeptanshu Sekhri --- .gitlab-ci.yml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 776a1eb..8f41834 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -18,12 +18,12 @@ variables: - amd64 - tosa-static +# Matrix definition for build-and-test jobs .ci-build-and-test: &ci-build-and-test - OS: "linux_x86" IMAGE: "tcft-base-linux_x86_64:latest" - TAGS: "linux-x86" -# Shared cache +# Shared cache configuration across builds and tests cache: key: "${CI_COMMIT_REF_SLUG}" policy: pull-push @@ -67,11 +67,11 @@ lint: image: $BASE_IMAGE_LINUX tags: *runner-tags script: - - whoami && id -u - - pre-commit install + - 'echo "Running Lint Stage: verifying code formatting and hygiene"' + - 'echo "User: $(whoami), UID: $(id -u)"' - pre-commit run --config .pre-commit-config.yaml --all-files -# Build Step +# Build stage: produce Python wheel build: extends: - .standard-rules @@ -85,8 +85,11 @@ build: image: $IMAGE tags: *runner-tags script: + - 'echo "Running Build Stage: starting build for OS = $OS"' - bazel version + - echo "Cleaning workspace..." - bazel clean --expunge + - echo "Building Python wheel" - python -m build --wheel artifacts: expire_in: 7 days @@ -108,7 +111,9 @@ test-cli: image: $IMAGE tags: *runner-tags script: + - 'echo "Running Test-CLI Stage: installing wheel and running tests on OS = $OS"' - python -m pip install dist/*.whl + - echo "Executing pytest" - python -m pytest -v tests/test_cli.py --log-cli-level=DEBUG --junit-xml=junit-cli-${OS}.xml artifacts: when: always -- GitLab From 6ebb3746661387e06f062694a74192e5c0496a13 Mon Sep 17 00:00:00 2001 From: Deeptanshu Sekhri Date: Fri, 18 Jul 2025 10:53:21 +0100 Subject: [PATCH 07/14] chore(ci): updating image name for linux ci stages Signed-off-by: Deeptanshu Sekhri --- .gitlab-ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8f41834..0c0f913 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -11,7 +11,7 @@ workflow: # Global runner & version variables variables: - BASE_IMAGE_LINUX: "tcft-base-linux_x86_64:latest" + BASE_IMAGE_LINUX_x86_64: "registry.gitlab.arm.com/tosa/tosa-converter-for-tflite/tcft-base-linux_x86_64" # default Docker image for Linux jobs PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip" .runner-tags: &runner-tags @@ -20,8 +20,8 @@ variables: # Matrix definition for build-and-test jobs .ci-build-and-test: &ci-build-and-test - - OS: "linux_x86" - IMAGE: "tcft-base-linux_x86_64:latest" + - OS: "linux_x86_64" + IMAGE: $BASE_IMAGE_LINUX_x86_64 # Shared cache configuration across builds and tests cache: @@ -64,7 +64,7 @@ lint: - .base-job stage: lint timeout: 5m - image: $BASE_IMAGE_LINUX + image: $BASE_IMAGE_LINUX_x86_64 tags: *runner-tags script: - 'echo "Running Lint Stage: verifying code formatting and hygiene"' -- GitLab From 7343dab92cc15318448633edd0d28de38a997b7b Mon Sep 17 00:00:00 2001 From: Deeptanshu Sekhri Date: Fri, 18 Jul 2025 10:54:38 +0100 Subject: [PATCH 08/14] chore(ci): updating rules for running ci stages Signed-off-by: Deeptanshu Sekhri --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0c0f913..350e50c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -39,11 +39,12 @@ stages: # Standard timeout and gating rules .standard-rules: + timeout: 20m + # we run CI on MRs, default-branch commits, and protected tags rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - if: $CI_COMMIT_TAG && $CI_COMMIT_REF_PROTECTED == "true" - - if: $CI_PIPELINE_SOURCE == "push" # Base runner settings .base-job: &base-job @@ -51,7 +52,6 @@ stages: retry: max: 2 when: - - always - job_execution_timeout - stuck_or_timeout_failure - runner_system_failure -- GitLab From 0a64037442f803818bf1a0fa7b5dfef923b61a99 Mon Sep 17 00:00:00 2001 From: Deeptanshu Sekhri Date: Fri, 18 Jul 2025 11:14:25 +0100 Subject: [PATCH 09/14] fix: pre-commit cache permissions Signed-off-by: Deeptanshu Sekhri --- .gitlab-ci.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 350e50c..02cd1a6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -12,7 +12,9 @@ workflow: # Global runner & version variables variables: BASE_IMAGE_LINUX_x86_64: "registry.gitlab.arm.com/tosa/tosa-converter-for-tflite/tcft-base-linux_x86_64" # default Docker image for Linux jobs + XDG_CACHE_HOME: "$CI_PROJECT_DIR/.cache" PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip" + PRE_COMMIT_HOME: "$XDG_CACHE_HOME/pre-commit" .runner-tags: &runner-tags - amd64 @@ -30,6 +32,7 @@ cache: paths: - .cache/pip - .cache/bazel + - .cache/pre-commit # Pipeline stages stages: @@ -66,6 +69,8 @@ lint: timeout: 5m image: $BASE_IMAGE_LINUX_x86_64 tags: *runner-tags + before_script: + - mkdir -p "$PRE_COMMIT_HOME" script: - 'echo "Running Lint Stage: verifying code formatting and hygiene"' - 'echo "User: $(whoami), UID: $(id -u)"' -- GitLab From 82e4c0f80638bea1124155c1cbd34e1da5725a92 Mon Sep 17 00:00:00 2001 From: Deeptanshu Sekhri Date: Fri, 18 Jul 2025 11:41:36 +0100 Subject: [PATCH 10/14] chore(ci): changing label name and improving ci verbosity Signed-off-by: Deeptanshu Sekhri --- .gitlab-ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 02cd1a6..b9e089e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -21,9 +21,9 @@ variables: - tosa-static # Matrix definition for build-and-test jobs -.ci-build-and-test: &ci-build-and-test +.ci-build-and-test-matrix: &ci-build-and-test-matrix - OS: "linux_x86_64" - IMAGE: $BASE_IMAGE_LINUX_x86_64 + IMAGE: "registry.gitlab.arm.com/tosa/tosa-converter-for-tflite/tcft-base-linux_x86_64" # Shared cache configuration across builds and tests cache: @@ -86,7 +86,7 @@ build: - lint timeout: 20m parallel: - matrix: *ci-build-and-test + matrix: *ci-build-and-test-matrix image: $IMAGE tags: *runner-tags script: @@ -112,7 +112,7 @@ test-cli: artifacts: true timeout: 15m parallel: - matrix: *ci-build-and-test + matrix: *ci-build-and-test-matrix image: $IMAGE tags: *runner-tags script: -- GitLab From ac7ca1d00be01cf9dbd77bb97f2a6116bbbf810f Mon Sep 17 00:00:00 2001 From: Deeptanshu Sekhri Date: Fri, 18 Jul 2025 12:20:15 +0100 Subject: [PATCH 11/14] test: add skip_if_root marker - skip tests that show variations with root privileges as they override filesystem permission checks Signed-off-by: Deeptanshu Sekhri --- tests/test_cli.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/test_cli.py b/tests/test_cli.py index 1352ef7..5c85c21 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -29,6 +29,7 @@ Troubleshoot: - Ensure `tosa-converter-for-tflite` is on your PATH. """ import logging +import os import random import re import shutil @@ -318,6 +319,14 @@ def test_help_flag_writes_usage(cli_path: str, out_dir: Path) -> None: assert "help" in help_txt.read_text().lower() +# Skip tests that depend on filesystem permission errors when running as root, +# since root privileges override normal file permission checks. +skip_if_root = pytest.mark.skipif( + os.geteuid() == 0, reason="Skipping tests requiring permission errors under root" +) + + +@skip_if_root @pytest.mark.cli def test_output_to_unwritable_directory( cli_path: str, mobilenet_tflite: Path, out_dir: Path @@ -362,6 +371,7 @@ def test_output_to_non_directory( assert not target.exists() +@skip_if_root @pytest.mark.cli def test_readonly_existing_file( cli_path: str, mobilenet_tflite: Path, out_dir: Path -- GitLab From 4c70fefb7cc85db642b41f0a019c9a871c2688cf Mon Sep 17 00:00:00 2001 From: Deeptanshu Sekhri Date: Fri, 18 Jul 2025 14:39:17 +0100 Subject: [PATCH 12/14] fix(ci): cache Python wheel in pipeline instead of artifacts Signed-off-by: Deeptanshu Sekhri --- .gitlab-ci.yml | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b9e089e..a5dbead 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -96,12 +96,13 @@ build: - bazel clean --expunge - echo "Building Python wheel" - python -m build --wheel - artifacts: - expire_in: 7 days + cache: + key: "$CI_PIPELINE_ID" paths: - dist/*.whl + policy: push -# CLI tests +# Test stage: run CLI tests test-cli: extends: - .standard-rules @@ -109,12 +110,17 @@ test-cli: stage: test needs: - job: build - artifacts: true + artifacts: false timeout: 15m parallel: matrix: *ci-build-and-test-matrix image: $IMAGE tags: *runner-tags + cache: + key: "$CI_PIPELINE_ID" + paths: + - dist/*.whl + policy: pull script: - 'echo "Running Test-CLI Stage: installing wheel and running tests on OS = $OS"' - python -m pip install dist/*.whl -- GitLab From eea4ade6779fd10b23c9b2b69a77dd8b97e6a626 Mon Sep 17 00:00:00 2001 From: Deeptanshu Sekhri Date: Mon, 21 Jul 2025 12:11:24 +0100 Subject: [PATCH 13/14] feat(ci): unify cache inheritance and remove Bazel expunge from CI to improve cache performance Signed-off-by: Deeptanshu Sekhri --- .gitlab-ci.yml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a5dbead..31082e8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -14,7 +14,7 @@ variables: BASE_IMAGE_LINUX_x86_64: "registry.gitlab.arm.com/tosa/tosa-converter-for-tflite/tcft-base-linux_x86_64" # default Docker image for Linux jobs XDG_CACHE_HOME: "$CI_PROJECT_DIR/.cache" PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip" - PRE_COMMIT_HOME: "$XDG_CACHE_HOME/pre-commit" + PRE_COMMIT_HOME: "$XDG_CACHE_HOME/pre-commit" .runner-tags: &runner-tags - amd64 @@ -26,7 +26,7 @@ variables: IMAGE: "registry.gitlab.arm.com/tosa/tosa-converter-for-tflite/tcft-base-linux_x86_64" # Shared cache configuration across builds and tests -cache: +cache: &global_cache key: "${CI_COMMIT_REF_SLUG}" policy: pull-push paths: @@ -92,15 +92,13 @@ build: script: - 'echo "Running Build Stage: starting build for OS = $OS"' - bazel version - - echo "Cleaning workspace..." - - bazel clean --expunge - echo "Building Python wheel" - python -m build --wheel cache: - key: "$CI_PIPELINE_ID" - paths: + - <<: *global_cache + - key: "$CI_PIPELINE_ID" + paths: - dist/*.whl - policy: push # Test stage: run CLI tests test-cli: @@ -117,6 +115,7 @@ test-cli: image: $IMAGE tags: *runner-tags cache: + <<: *global_cache key: "$CI_PIPELINE_ID" paths: - dist/*.whl -- GitLab From 2d836d9e0f632e6d5a7be041ab6e5805c43d6bdc Mon Sep 17 00:00:00 2001 From: Deeptanshu Sekhri Date: Mon, 21 Jul 2025 12:15:01 +0100 Subject: [PATCH 14/14] chore: re-use variable in IMAGE_NAME for build and test matrix Signed-off-by: Deeptanshu Sekhri --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 31082e8..c5e9400 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -23,7 +23,7 @@ variables: # Matrix definition for build-and-test jobs .ci-build-and-test-matrix: &ci-build-and-test-matrix - OS: "linux_x86_64" - IMAGE: "registry.gitlab.arm.com/tosa/tosa-converter-for-tflite/tcft-base-linux_x86_64" + IMAGE: $BASE_IMAGE_LINUX_x86_64 # Shared cache configuration across builds and tests cache: &global_cache -- GitLab