Skip to content
Snippets Groups Projects
Commit 265bbd53 authored by Bryan BRANCOTTE's avatar Bryan BRANCOTTE
Browse files

Merge branch 'rework-image-matrix-and-export' into 'docker-images'

Rework image matrix and export

See merge request !26
parents e40ceb26 ab5862a5
No related branches found
No related tags found
1 merge request!26Rework image matrix and export
Pipeline #133212 passed
Pipeline: shiny-k8s-example

#133214

    Pipeline: shiny-k8s-example

    #133213

      ......@@ -4,6 +4,7 @@ image: docker:24
      variables:
      LATEST_UBUNTU_VERSION: "jammy"
      LATEST_DEBIAN_VERSION: "bookworm"
      ......@@ -16,7 +17,11 @@ variables:
      - docker --version
      - |
      if [ "${LANGUAGE}" == "python" ]; then
      LANGUAGE_VERSION="${PYTHON_VERSION}"
      if [ "${LATEST_DEBIAN_VERSION}" == "${DEBIAN_VERSION}" ]; then
      LANGUAGE_VERSION="${PYTHON_VERSION}${PYTHON_VERSION_SUFFIX}"
      else
      LANGUAGE_VERSION="${PYTHON_VERSION}${PYTHON_VERSION_SUFFIX}-${DEBIAN_VERSION}"
      fi
      else
      if [ "${LATEST_UBUNTU_VERSION}" == "${UBUNTU_VERSION}" ]; then
      LANGUAGE_VERSION="${R_VERSION}"
      ......@@ -38,35 +43,47 @@ variables:
      - apk add gettext
      - envsubst < ./Dockerfile.$LANGUAGE > Dockerfile
      # pull the latest build of the targeted version of the current branch
      - docker pull "$CI_REGISTRY_IMAGE/${LANGUAGE}/$CI_COMMIT_REF_SLUG:$VERSIONS_TAG" || true
      - docker pull "$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG/${LANGUAGE}:$VERSIONS_TAG" || true
      # pull the latest build of the target version of the main branch
      - docker pull "$CI_REGISTRY_IMAGE/${LANGUAGE}:$VERSIONS_TAG" || true
      # pull the latest build of this branch
      - docker pull "$CI_REGISTRY_IMAGE/${LANGUAGE}/$CI_COMMIT_REF_SLUG:latest" || true
      - docker pull "$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG/${LANGUAGE}:latest" || true
      # build the image while passing commit SHA and versions, and tagging the image with them
      - docker build
      --build-arg BUILDKIT_INLINE_CACHE=1
      --build-arg R_VERSION
      --build-arg SHINY_SERVER_VERSION
      --cache-from "$CI_REGISTRY_IMAGE/${LANGUAGE}/$CI_COMMIT_REF_SLUG:$VERSIONS_TAG"
      --cache-from "$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG/${LANGUAGE}:$VERSIONS_TAG"
      --cache-from "$CI_REGISTRY_IMAGE/${LANGUAGE}:$VERSIONS_TAG"
      --tag "$CI_REGISTRY_IMAGE/${LANGUAGE}/$CI_COMMIT_REF_SLUG:latest"
      --tag "$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG/${LANGUAGE}:latest"
      --tag "$CI_REGISTRY_IMAGE/${LANGUAGE}:$VERSIONS_TAG"
      --tag "$CI_REGISTRY_IMAGE/${LANGUAGE}/$CI_COMMIT_REF_SLUG:$VERSIONS_TAG"
      --tag "$CI_REGISTRY_IMAGE/${LANGUAGE}/$CI_COMMIT_REF_SLUG:$VERSIONS_TAG--$CI_COMMIT_SHORT_SHA"
      --tag "$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG/${LANGUAGE}:$VERSIONS_TAG"
      --tag "$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG/${LANGUAGE}:$VERSIONS_TAG--$CI_COMMIT_SHORT_SHA"
      -f Dockerfile
      ./
      # push image as latest for the current branch
      - docker push "$CI_REGISTRY_IMAGE/${LANGUAGE}/$CI_COMMIT_REF_SLUG:latest"
      - docker push "$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG/${LANGUAGE}:latest"
      # push image tagged with its versions
      - docker push "$CI_REGISTRY_IMAGE/${LANGUAGE}/$CI_COMMIT_REF_SLUG:$VERSIONS_TAG"
      - IMAGE_PATH="$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG/${LANGUAGE}:$VERSIONS_TAG"
      - docker push "${IMAGE_PATH}"
      # push image tagged with its versions and the commit sha (debug purpose)
      - docker push "$CI_REGISTRY_IMAGE/${LANGUAGE}/$CI_COMMIT_REF_SLUG:$VERSIONS_TAG--$CI_COMMIT_SHORT_SHA"
      - docker push "$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG/${LANGUAGE}:$VERSIONS_TAG--$CI_COMMIT_SHORT_SHA"
      - |
      if [ "docker-images" == "${CI_COMMIT_REF_SLUG}" ]; then
      # push image tagged with its versions
      docker push "$CI_REGISTRY_IMAGE/${LANGUAGE}:$VERSIONS_TAG"
      IMAGE_PATH="$CI_REGISTRY_IMAGE/${LANGUAGE}:$VERSIONS_TAG"
      docker push "${IMAGE_PATH}"
      fi
      - IMAGE_PATH="$CI_REGISTRY_IMAGE/${LANGUAGE}:$VERSIONS_TAG"
      - CSV_LINE="${IMAGE_PATH},${UBUNTU_VERSION}${DEBIAN_VERSION},${PYTHON_VERSION}${R_VERSION},${SHINY_SERVER_VERSION}"
      - MD5SUM=$(echo $CSV_LINE | md5sum | head -c 32)
      - mkdir -p image-list-fragments/
      - echo $CSV_LINE > image-list-fragments/${MD5SUM}.csv
      artifacts:
      when: always
      paths:
      - image-list-fragments
      expire_in: 1 week
      ......@@ -76,12 +93,16 @@ build_python:
      matrix:
      - LANGUAGE: ["python"]
      PYTHON_VERSION: [
      "3.9-slim-bullseye",
      "3.9-slim",
      "3.10-slim-bullseye",
      "3.10-slim",
      "3.11-slim-bullseye",
      "3.11-slim",
      "3.9",
      "3.10",
      "3.11",
      ]
      PYTHON_VERSION_SUFFIX: [
      "-slim"
      ]
      DEBIAN_VERSION: [
      "bookworm",
      "bullseye",
      ]
      SHINY_SERVER_VERSION: [
      "1.5.21.1006",
      ......@@ -113,6 +134,39 @@ build_r:
      publish_listing:
      needs:
      - build_r
      - build_python
      image: docker:24-git
      before_script:
      - git fetch origin docs
      - git checkout docs
      script:
      - echo "Built image,Base os,R/Python,shiny-server" > image_list.csv
      - cat image-list-fragments/*.csv >> image_list.csv
      - WHEN=$(LC_TIME="en_US.utf8" date +"%b %G")
      - sed "s/%%date%%/${WHEN}/g" source/user_guide/image_list.rst > image_list.rst
      artifacts:
      when: always
      paths:
      - image_list.csv
      - image_list.rst
      expire_in: 1 year
      # update_docs:
      # only:
      # - docker-images
      # - rework-image-matrix-and-export
      # needs: []
      # trigger:
      # - project: hub/shiny-k8s
      # branch: docs
      trigger_r_example:
      needs: ["build_r"]
      trigger:
      ......
      0% Loading or .
      You are about to add 0 people to the discussion. Proceed with caution.
      Finish editing this message first!
      Please register or to comment