From 63f66238aa1cc092676fafc764125a05d9118fa0 Mon Sep 17 00:00:00 2001
From: Eric Timmons <etimmons@mit.edu>
Date: Tue, 3 Nov 2020 20:32:14 -0500
Subject: [PATCH] Move gitlab-ci to a common repo for all images

---
 .gitlab-ci.yml | 235 +------------------------------------------------
 1 file changed, 2 insertions(+), 233 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 972c5bd..53252f4 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,240 +1,9 @@
 include:
-  - template: 'Workflows/Branch-Pipelines.gitlab-ci.yml'
-
-stages:
-  - fixup manifest
-  - build
-  - push
-  - put shared
-  - readme
+  - project: 'cl-docker-images/ci-helpers'
+    file: '/cl-docker-images-default-pipeline.yml'
 
 variables:
   CANONICAL_NAMESPACE: daewok
   CL_DOCKER_IMAGES_AMD64: "1"
   CL_DOCKER_IMAGES_ARM64V8: "1"
   CL_DOCKER_IMAGES_WINAMD64: "1"
-
-##############################################################################
-# Fixup manifest
-
-Fixup manifest:
-  image: alpine:latest
-  stage: fixup manifest
-  script:
-    - mkdir -p build
-    - |
-      echo "GitCommit: $CI_COMMIT_SHA" > "build/$CI_PROJECT_NAME"
-    - |
-      echo "GitFetch: refs/heads/$CI_COMMIT_REF_NAME" >> "build/$CI_PROJECT_NAME"
-    - cat "$CI_PROJECT_NAME" >> "build/$CI_PROJECT_NAME"
-  artifacts:
-    paths:
-      - build/
-
-
-##############################################################################
-# Build
-
-.Bashbrew build Linux:
-  stage: build
-  variables:
-    BASHBREW_NAMESPACE: $CANONICAL_NAMESPACE
-    BASHBREW_LIBRARY: $CI_PROJECT_DIR
-    BASHBREW_CACHE: $CI_PROJECT_DIR/cache/bashbrew
-    BASHBREW_DEBUG: "true"
-  script:
-    - docker info
-    - mkdir -p cache
-    - cp "build/$CI_PROJECT_NAME" "$CI_PROJECT_NAME"
-    - |
-      parents="$(bashbrew cat --format '{{- range $.Entries -}}
-                                          {{- if not ($.SkipConstraints .) -}}
-                                            {{- $.DockerFroms . | join "\n" -}}
-                                            {{- "\n" -}}
-                                          {{- end -}}
-                                        {{- end -}}' $CI_PROJECT_NAME \
-                 | { grep -vE '^$|^scratch$|^'"$CANONICAL_NAMESPACE/$CI_PROJECT_NAME"'(:|$)' || true; } \
-                 | sort -u)"
-    - echo "$parents"
-    - |
-      for parent in $parents; do
-        echo "Pulling $parent"
-        docker pull --platform=$DOCKER_PLATFORM "$parent"
-      done
-    - retry -t 3 -d 60 -- bashbrew build $CI_PROJECT_NAME
-    - docker images
-    - bashbrew tag --target-namespace=$CANONICAL_NAMESPACE$ARCH$CI_PIPELINE_IID $CI_PROJECT_NAME
-  cache:
-    paths:
-      - cache
-    key: $ARCH
-
-.Bashbrew build win:
-  stage: build
-  variables:
-    BASHBREW_NAMESPACE: $CANONICAL_NAMESPACE
-    BASHBREW_LIBRARY: $CI_PROJECT_DIR
-    BASHBREW_CACHE: $CI_PROJECT_DIR/cache/bashbrew
-    BASHBREW_DEBUG: "true"
-    ARCH: winamd64
-    BASHBREW_ARCH: windows-amd64
-    PARENT_IMAGES: "openjdk:15-windowsservercore-1809;openjdk:11-windowsservercore-1809;openjdk:8-windowsservercore-1809;openjdk:15-windowsservercore-ltsc2016;openjdk:11-windowsservercore-ltsc2016;openjdk:8-windowsservercore-ltsc2016"
-  script:
-    - docker info
-    - cp "build/$CI_PROJECT_NAME" "$CI_PROJECT_NAME"
-    # Make the user specify the parent images. I don't feel like figuring out
-    # how to automatically figure them out using powershell.
-    - $parentArray = $PARENT_IMAGES.split(";")
-    - foreach ($parent in $parentArray){ docker pull $parent }
-    - bashbrew build $CI_PROJECT_NAME
-    - docker images
-    - bashbrew tag --target-namespace=$CANONICAL_NAMESPACE$ARCH$CI_PIPELINE_IID $CI_PROJECT_NAME
-  cache:
-    paths:
-      - cache
-    key: $ARCH
-  tags:
-    - bashbrew-winamd64
-
-Bashbrew build - amd64:
-  extends: .Bashbrew build Linux
-  variables:
-    ARCH: amd64
-    BASHBREW_ARCH: amd64
-    DOCKER_PLATFORM: linux/amd64
-  rules:
-    - if: $CL_DOCKER_IMAGES_AMD64
-  tags:
-    - bashbrew-amd64
-
-Bashbrew build - arm64:
-  extends: .Bashbrew build Linux
-  variables:
-    ARCH: arm64v8
-    BASHBREW_ARCH: arm64v8
-    DOCKER_PLATFORM: linux/arm64
-  rules:
-    - if: $CL_DOCKER_IMAGES_ARM64V8
-  tags:
-    - bashbrew-arm64v8
-
-Bashbrew build - arm32v7:
-  extends: .Bashbrew build Linux
-  variables:
-    ARCH: arm32v7
-    BASHBREW_ARCH: arm32v7
-    DOCKER_PLATFORM: linux/arm/v7
-  rules:
-    - if: $CL_DOCKER_IMAGES_ARM32V7
-  tags:
-    - bashbrew-arm32v7
-
-Bashbrew build - winamd64:
-  extends: .Bashbrew build win
-  rules:
-    - if: $CL_DOCKER_IMAGES_WINAMD64
-
-
-##############################################################################
-# Push
-
-.Bashbrew push Linux:
-  stage: push
-  variables:
-    BASHBREW_NAMESPACE: $CANONICAL_NAMESPACE
-    BASHBREW_LIBRARY: $CI_PROJECT_DIR
-    BASHBREW_CACHE: $CI_PROJECT_DIR/cache/bashbrew
-    BASHBREW_DEBUG: "true"
-  script:
-    - docker info
-    - mkdir -p cache
-    - cp "build/$CI_PROJECT_NAME" "$CI_PROJECT_NAME"
-    - bashbrew tag --namespace=$CANONICAL_NAMESPACE$ARCH$CI_PIPELINE_IID --target-namespace=$CANONICAL_NAMESPACE$ARCH $CI_PROJECT_NAME
-    - retry -t 3 -d 60 -- bashbrew --namespace=$CANONICAL_NAMESPACE$ARCH push $CI_PROJECT_NAME
-  cache:
-    paths:
-      - cache
-    key: $ARCH
-
-.Bashbrew push win:
-  stage: push
-  variables:
-    BASHBREW_NAMESPACE: $CANONICAL_NAMESPACE
-    BASHBREW_LIBRARY: $CI_PROJECT_DIR
-    BASHBREW_CACHE: $CI_PROJECT_DIR/cache/bashbrew
-    BASHBREW_DEBUG: "true"
-    ARCH: winamd64
-    BASHBREW_ARCH: windows-amd64
-  script:
-    - docker info
-    - cp "build/$CI_PROJECT_NAME" "$CI_PROJECT_NAME"
-    - bashbrew tag --namespace=$CANONICAL_NAMESPACE$ARCH$CI_PIPELINE_IID --target-namespace=$CANONICAL_NAMESPACE$ARCH $CI_PROJECT_NAME
-    - bashbrew --namespace=$CANONICAL_NAMESPACE$ARCH push $CI_PROJECT_NAME
-  cache:
-    paths:
-      - cache
-    key: $ARCH
-  tags:
-    - bashbrew-winamd64
-
-Bashbrew push - amd64:
-  extends: .Bashbrew push Linux
-  variables:
-    ARCH: amd64
-    BASHBREW_ARCH: amd64
-    DOCKER_PLATFORM: linux/amd64
-  rules:
-    - if: ($CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH) && $CL_DOCKER_IMAGES_AMD64
-  tags:
-    - bashbrew-amd64
-
-Bashbrew push - arm64:
-  extends: .Bashbrew push Linux
-  variables:
-    ARCH: arm64v8
-    BASHBREW_ARCH: arm64v8
-    DOCKER_PLATFORM: linux/arm64
-  rules:
-    - if: ($CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH) && $CL_DOCKER_IMAGES_ARM64V8
-  tags:
-    - bashbrew-arm64v8
-
-Bashbrew push - arm32v7:
-  extends: .Bashbrew push Linux
-  variables:
-    ARCH: arm32v7
-    BASHBREW_ARCH: arm32v7
-    DOCKER_PLATFORM: linux/arm/v7
-  rules:
-    - if: ($CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH) && $CL_DOCKER_IMAGES_ARM32V7
-  tags:
-    - bashbrew-arm32v7
-
-Bashbrew push - winamd64:
-  extends: .Bashbrew push win
-  rules:
-    - if: ($CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH) && $CL_DOCKER_IMAGES_WINAMD64
-
-##############################################################################
-# Put shared
-
-Bashbrew put-shared:
-  stage: put shared
-  variables:
-    BASHBREW_NAMESPACE: $CANONICAL_NAMESPACE
-    BASHBREW_LIBRARY: $CI_PROJECT_DIR
-    BASHBREW_CACHE: $CI_PROJECT_DIR/cache/bashbrew
-    BASHBREW_DEBUG: "true"
-  script:
-    - docker info
-    - mkdir -p cache
-    - cp "build/$CI_PROJECT_NAME" "$CI_PROJECT_NAME"
-    - retry -t 3 -d 60 -- bashbrew --arch-namespace amd64=${CANONICAL_NAMESPACE}amd64 --arch-namespace arm32v7=${CANONICAL_NAMESPACE}arm32v7 --arch-namespace arm64v8=${CANONICAL_NAMESPACE}arm64v8 --arch-namespace windows-amd64=${CANONICAL_NAMESPACE}winamd64 put-shared "$CI_PROJECT_NAME"
-  tags:
-    - bashbrew-amd64
-  rules:
-    - if: ($CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH)
-  cache:
-    paths:
-      - cache
-    key: put-shared
-- 
GitLab