Commit 6811320c authored by Marco Cavalli's avatar Marco Cavalli
Browse files

fix: simplify Docker image handling in CI/CD scripts

parent 4fb2a2e8
Loading
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -11,16 +11,13 @@ workflow:
stages:
  - publication

variables:
  IMAGE_NAME: "mirkesx/spec-converter"

Publish spec:
  stage: publication
  only:
    - tags
  before_script:
    - chmod +x .gitlab/generateCR/publish_spec.sh
    - docker pull "${IMAGE_NAME}"
    - docker pull "mirkesx/spec-converter"
    - export SPEC_NAME="$(ls | grep -E "(GS|GR|TS).*\.md" | head -n1 | cut -d'.' -f1 || true)"
  script:
    - echo 'Publishing spec with local repository script'
+16 −32
Original line number Diff line number Diff line
@@ -33,16 +33,12 @@ if [[ -z "$PROJECT_URL" || -z "$COMMIT_TAG" ]]; then
  exit 1
fi

IMAGE_NAME="${IMAGE_NAME:-mirkesx/spec-converter}"
DOCKERFILE_PATH="${DOCKERFILE_PATH:-Dockerfile.cicd}"
ARCH="${ARCH:-amd64}"
REBUILD="${REBUILD:-false}"
SOURCE_FORMAT="${SOURCE_FORMAT:-md}"

if [[ "$ARCH" != "amd64" && "$ARCH" != "arm64" ]]; then
  echo "Error: ARCH must be either 'amd64' or 'arm64'"
  exit 1
fi
# Execution assumptions for this repository pipeline:
# - fixed container image: mirkesx/spec-converter
# - pull image on each run
# - source format is always markdown
# - no local image build path
IMAGE_NAME="mirkesx/spec-converter"

# Allow explicit override from CI when needed.
MD_SOURCE_DIR="${MD_SOURCE_DIR:-}"
@@ -81,14 +77,7 @@ echo "Detected source: $ABS_MD_SOURCE"
echo "Conversion folder: $FOLDER_NAME"
echo "Spec name: $SPEC_NAME"

if ! docker image inspect "$IMAGE_NAME" >/dev/null 2>&1 || [[ "$REBUILD" == "true" ]]; then
  if [[ ! -f "$DOCKERFILE_PATH" ]]; then
    echo "Error: Dockerfile not found at $DOCKERFILE_PATH"
    echo "Info: pull the image first (default: $IMAGE_NAME) or provide a valid Dockerfile path"
    exit 1
  fi
  docker build --build-arg TARGETARCH="$ARCH" -f "$DOCKERFILE_PATH" -t "$IMAGE_NAME" .
fi
docker pull "$IMAGE_NAME"

if [[ -n "$TEMPLATE_DOCX_ARG" ]]; then
  echo "Info: template_docx argument is ignored. Using customized_reference.docx when available."
@@ -108,7 +97,6 @@ if [[ -n "$TEMPLATE_MOUNT" ]]; then
  TEMPLATE_ARGS=(-v "$TEMPLATE_MOUNT")
fi

if [[ "$SOURCE_FORMAT" == "md" ]]; then
docker run --rm \
  -v "$(pwd)/GENERATED_FILES:/app/GENERATED_FILES:rw" \
  -v "$ABS_MD_SOURCE:/data/sources:rw" \
@@ -118,10 +106,6 @@ if [[ "$SOURCE_FORMAT" == "md" ]]; then
  --to html \
  --folder "$FOLDER_NAME" \
  --src /data/sources
elif [[ "$SOURCE_FORMAT" != "html" ]]; then
  echo "Error: SOURCE_FORMAT must be either 'md' or 'html'"
  exit 1
fi

docker run --rm \
  -v "$(pwd)/GENERATED_FILES:/app/GENERATED_FILES:rw" \