You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by mi...@apache.org on 2024/03/04 20:00:11 UTC

(superset) branch test-ci updated: Revert "fix: docker should always run, even in forks (#26801)"

This is an automated email from the ASF dual-hosted git repository.

michaelsmolina pushed a commit to branch test-ci
in repository https://gitbox.apache.org/repos/asf/superset.git


The following commit(s) were added to refs/heads/test-ci by this push:
     new 72bbf11017 Revert "fix: docker should always run, even in forks (#26801)"
72bbf11017 is described below

commit 72bbf1101782ee666b8329bab2069de4a9f93c7b
Author: Michael S. Molina <mi...@gmail.com>
AuthorDate: Mon Mar 4 14:48:50 2024 -0500

    Revert "fix: docker should always run, even in forks (#26801)"
    
    This reverts commit 7ac656f6eaf484ae56b2517970cb44980c50133f.
---
 .github/workflows/docker.yml |  43 +-----------
 scripts/docker_build_push.sh | 156 -------------------------------------------
 2 files changed, 3 insertions(+), 196 deletions(-)

diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml
index 2d96be91b5..ae54835e0f 100644
--- a/.github/workflows/docker.yml
+++ b/.github/workflows/docker.yml
@@ -3,7 +3,7 @@ name: Docker
 on:
   push:
     branches:
-      - "master"
+      - 'master'
   pull_request:
     types: [synchronize, opened, reopened, ready_for_review]
 
@@ -45,42 +45,5 @@ jobs:
           DOCKERHUB_USER: ${{ secrets.DOCKERHUB_USER }}
           DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
         run: |
-          ./scripts/docker_build_push.sh "" ${{ matrix.target }} ${{ matrix.platform }}
-
-  ephemeral-docker-build:
-    name: docker-build
-    runs-on: ubuntu-latest
-    steps:
-      - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
-        uses: actions/checkout@v4
-        with:
-          persist-credentials: false
-
-      - name: Set up QEMU
-        uses: docker/setup-qemu-action@v3
-
-      - name: Set up Docker Buildx
-        uses: docker/setup-buildx-action@v3
-
-      - name: Build ephemeral env image
-        if: github.event_name == 'pull_request'
-        run: |
-          mkdir -p ./build
-          echo ${{ github.sha }} > ./build/SHA
-          echo ${{ github.event.pull_request.number }} > ./build/PR-NUM
-          docker buildx build --target ci \
-            --load \
-            --cache-from=type=registry,ref=apache/superset:lean \
-            -t ${{ github.sha }} \
-            -t "pr-${{ github.event.pull_request.number }}" \
-            --platform linux/amd64 \
-            --label "build_actor=${GITHUB_ACTOR}" \
-            .
-          docker save ${{ github.sha }} | gzip > ./build/${{ github.sha }}.tar.gz
-
-      - name: Upload build artifacts
-        if: github.event_name == 'pull_request'
-        uses: actions/upload-artifact@v4
-        with:
-          name: build
-          path: build/
+          pip install click
+          ./scripts/build_docker.py ${{ matrix.build_preset }} ${{ github.event_name }} --platform ${{ matrix.platform }}
diff --git a/scripts/docker_build_push.sh b/scripts/docker_build_push.sh
deleted file mode 100755
index 3d0271cb2b..0000000000
--- a/scripts/docker_build_push.sh
+++ /dev/null
@@ -1,156 +0,0 @@
-#!/usr/bin/env bash
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-set -eo pipefail
-
-GITHUB_RELEASE_TAG_NAME="$1"
-TARGET="$2"
-BUILD_PLATFORM="$3" # should be either 'linux/amd64' or 'linux/arm64'
-
-# Common variables
-SHA=$(git rev-parse HEAD)
-REPO_NAME="apache/superset"
-DOCKER_ARGS="--load" # default args, change as needed
-DOCKER_CONTEXT="."
-
-
-if [[ "${GITHUB_EVENT_NAME}" == "pull_request" ]]; then
-  REFSPEC=$(echo "${GITHUB_HEAD_REF}" | sed 's/[^a-zA-Z0-9]/-/g' | head -c 40)
-  PR_NUM=$(echo "${GITHUB_REF}" | sed 's:refs/pull/::' | sed 's:/merge::')
-  LATEST_TAG="pr-${PR_NUM}"
-elif [[ "${GITHUB_EVENT_NAME}" == "release" ]]; then
-  REFSPEC=$(echo "${GITHUB_REF}" | sed 's:refs/tags/::' | head -c 40)
-  LATEST_TAG="${REFSPEC}"
-else
-  REFSPEC=$(echo "${GITHUB_REF}" | sed 's:refs/heads/::' | sed 's/[^a-zA-Z0-9]/-/g' | head -c 40)
-  LATEST_TAG="${REFSPEC}"
-fi
-
-
-if [[ "${REFSPEC}" == "master" ]]; then
-  LATEST_TAG="master"
-fi
-
-# get the latest release tag
-if [ -n "${GITHUB_RELEASE_TAG_NAME}" ]; then
-  output=$(source ./scripts/tag_latest_release.sh "${GITHUB_RELEASE_TAG_NAME}" --dry-run) || true
-  SKIP_TAG=$(echo "${output}" | grep "SKIP_TAG" | cut -d'=' -f2)
-  if [[ "${SKIP_TAG}" == "SKIP_TAG::false" ]]; then
-    LATEST_TAG="latest"
-  fi
-fi
-
-if [[ "${TEST_ENV}" == "true" ]]; then
-  # don't run the build in test environment
-  echo "LATEST_TAG is ${LATEST_TAG}"
-  exit 0
-fi
-
-# for the dev image, it's ok to tag master as latest-dev
-# for production, we only want to tag the latest official release as latest
-if [ "${LATEST_TAG}" = "master" ]; then
-  DEV_TAG="${REPO_NAME}:latest-dev"
-else
-  DEV_TAG="${REPO_NAME}:${LATEST_TAG}-dev"
-fi
-
-BUILD_ARG="3.9-slim-bookworm"
-
-# Replace '/' with '-' in BUILD_PLATFORM
-SAFE_BUILD_PLATFORM=$(echo "${BUILD_PLATFORM}" | sed 's/\//-/g')
-MAIN_UNIQUE_TAG="${REPO_NAME}:${SHA}-${TARGET}-${SAFE_BUILD_PLATFORM}-${BUILD_ARG}"
-
-case "${TARGET}" in
-  "dev")
-    DOCKER_TAGS="-t ${MAIN_UNIQUE_TAG} -t ${REPO_NAME}:${SHA}-dev -t ${REPO_NAME}:${REFSPEC}-dev -t ${DEV_TAG}"
-    BUILD_TARGET="dev"
-    ;;
-  "lean")
-    DOCKER_TAGS="-t ${MAIN_UNIQUE_TAG} -t ${REPO_NAME}:${SHA} -t ${REPO_NAME}:${REFSPEC} -t ${REPO_NAME}:${LATEST_TAG}"
-    BUILD_TARGET="lean"
-    ;;
-  "lean310")
-    DOCKER_TAGS="-t ${MAIN_UNIQUE_TAG} -t ${REPO_NAME}:${SHA}-py310 -t ${REPO_NAME}:${REFSPEC}-py310 -t ${REPO_NAME}:${LATEST_TAG}-py310"
-    BUILD_TARGET="lean"
-    BUILD_ARG="3.10-slim-bookworm"
-    ;;
-  "websocket")
-    DOCKER_TAGS="-t ${MAIN_UNIQUE_TAG} -t ${REPO_NAME}:${SHA}-websocket -t ${REPO_NAME}:${REFSPEC}-websocket -t ${REPO_NAME}:${LATEST_TAG}-websocket"
-    BUILD_TARGET=""
-	DOCKER_CONTEXT="superset-websocket"
-    ;;
-  "dockerize")
-    DOCKER_TAGS="-t ${MAIN_UNIQUE_TAG} -t ${REPO_NAME}:dockerize"
-    BUILD_TARGET=""
-	DOCKER_CONTEXT="-f dockerize.Dockerfile ."
-    ;;
-  *)
-    echo "Invalid TARGET: ${TARGET}"
-    exit 1
-    ;;
-esac
-
-cat<<EOF
-  Rolling with tags:
-  - $MAIN_UNIQUE_TAG
-  - ${REPO_NAME}:${SHA}
-  - ${REPO_NAME}:${REFSPEC}
-  - ${REPO_NAME}:${LATEST_TAG}
-EOF
-
-if [ -z "${DOCKERHUB_TOKEN}" ]; then
-  # Skip if secrets aren't populated -- they're only visible for actions running in the repo (not on forks)
-  echo "Skipping Docker push"
-  # By default load it back
-  DOCKER_ARGS="--load"
-else
-  # Login and push
-  docker logout
-  docker login --username "${DOCKERHUB_USER}" --password "${DOCKERHUB_TOKEN}"
-  DOCKER_ARGS="--push"
-fi
-set -x
-
-TARGET_ARGUMENT=""
-if [[ -n "${BUILD_TARGET}" ]]; then
-  TARGET_ARGUMENT="--target ${BUILD_TARGET}"
-fi
-
-# Building the cache settings
-CACHE_REF="${REPO_NAME}-cache:${TARGET}-${BUILD_ARG}"
-CACHE_REF=$(echo "${CACHE_REF}" | tr -d '.')
-CACHE_FROM_ARG="--cache-from=type=registry,ref=${CACHE_REF}"
-CACHE_TO_ARG=""
-if [ -n "${DOCKERHUB_TOKEN}" ]; then
-  # need to be logged in to push to the cache
-  CACHE_TO_ARG="--cache-to=type=registry,mode=max,ref=${CACHE_REF}"
-fi
-
-docker buildx build \
-  ${TARGET_ARGUMENT} \
-  ${DOCKER_ARGS} \
-  ${DOCKER_TAGS} \
-  ${CACHE_FROM_ARG} \
-  ${CACHE_TO_ARG} \
-  --platform ${BUILD_PLATFORM} \
-  --label "sha=${SHA}" \
-  --label "built_at=$(date)" \
-  --label "target=${TARGET}" \
-  --label "base=${PY_VER}" \
-  --label "build_actor=${GITHUB_ACTOR}" \
-  ${BUILD_ARG:+--build-arg PY_VER="${BUILD_ARG}"} \
-  ${DOCKER_CONTEXT}