From 761263332b90f923ad02e74d4eaf2907ec4b4a6d Mon Sep 17 00:00:00 2001 From: strawberry Date: Thu, 2 May 2024 23:19:05 -0400 Subject: [PATCH] ci: push to gitlab container registry too Signed-off-by: strawberry --- .github/workflows/ci.yml | 25 +++++++++++++++++++++++ .gitlab-ci.yml | 43 ---------------------------------------- 2 files changed, 25 insertions(+), 43 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f284073e..eaddf17d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -233,7 +233,12 @@ jobs: GHCR_AMD64: ghcr.io/${{ github.repository }}:${{ github.ref_name }}-${{ github.sha }}-amd64 GHCR_TAG: ghcr.io/${{ github.repository }}:${{ github.ref_name }}-${{ github.sha }} GHCR_BRANCH: ghcr.io/${{ github.repository }}:${{ (github.ref == 'refs/heads/main' && 'latest') || github.ref_name }} + GLCR_ARM64: registry.gitlab.com/${{ github.repository }}:${{ github.ref_name }}-${{ github.sha }}-arm64v8 + GLCR_AMD64: registry.gitlab.com/${{ github.repository }}:${{ github.ref_name }}-${{ github.sha }}-amd64 + GLCR_TAG: registry.gitlab.com/${{ github.repository }}:${{ github.ref_name }}-${{ github.sha }} + GLCR_BRANCH: registry.gitlab.com/${{ github.repository }}:${{ (github.ref == 'refs/heads/main' && 'latest') || github.ref_name }} DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + GITLAB_TOKEN: ${{ secrets.GITLAB_TOKEN }} steps: - name: Login to GitHub Container Registry uses: docker/login-action@v3 @@ -250,6 +255,14 @@ jobs: username: ${{ vars.DOCKER_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Login to GitLab Container Registry + if: ${{ (vars.GITLAB_USERNAME != '') && (env.GITLAB_TOKEN != '') }} + uses: docker/login-action@v3 + with: + registry: registry.gitlab.com + username: ${{ vars.GITLAB_USERNAME }} + password: ${{ secrets.GITLAB_TOKEN }} + - name: Download artifacts uses: actions/download-artifact@v4 @@ -264,8 +277,10 @@ jobs: docker load -i oci-image-amd64.tar.gz docker tag $(docker images -q conduit:main) ${{ env.DOCKER_AMD64 }} docker tag $(docker images -q conduit:main) ${{ env.GHCR_AMD64 }} + docker tag $(docker images -q conduit:main) ${{ env.GLCR_AMD64 }} docker push ${{ env.DOCKER_AMD64 }} docker push ${{ env.GHCR_AMD64 }} + docker push ${{ env.GLCR_AMD64 }} - name: Load and push arm64 image if: ${{ (vars.DOCKER_USERNAME != '') && (env.DOCKERHUB_TOKEN != '') }} @@ -273,15 +288,22 @@ jobs: docker load -i oci-image-arm64v8.tar.gz docker tag $(docker images -q conduit:main) ${{ env.DOCKER_ARM64 }} docker tag $(docker images -q conduit:main) ${{ env.GHCR_ARM64 }} + docker tag $(docker images -q conduit:main) ${{ env.GLCR_ARM64 }} docker push ${{ env.DOCKER_ARM64 }} docker push ${{ env.GHCR_ARM64 }} + docker push ${{ env.GLCR_ARM64 }} - name: Create Docker combined manifests run: | + # Dockerhub Container Registry docker manifest create ${{ env.DOCKER_TAG }} --amend ${{ env.DOCKER_ARM64 }} --amend ${{ env.DOCKER_AMD64 }} docker manifest create ${{ env.DOCKER_BRANCH }} --amend ${{ env.DOCKER_ARM64 }} --amend ${{ env.DOCKER_AMD64 }} + # GitHub Container Registry docker manifest create ${{ env.GHCR_TAG }} --amend ${{ env.GHCR_ARM64 }} --amend ${{ env.GHCR_AMD64 }} docker manifest create ${{ env.GHCR_BRANCH }} --amend ${{ env.GHCR_ARM64 }} --amend ${{ env.GHCR_AMD64 }} + # GitLab Container Registry + docker manifest create ${{ env.GLCR_TAG }} --amend ${{ env.GLCR_ARM64 }} --amend ${{ env.GCCR_AMD64 }} + docker manifest create ${{ env.GLCR_BRANCH }} --amend ${{ env.GLCR_ARM64 }} --amend ${{ env.GLCR_AMD64 }} - name: Push manifests to Docker registries if: ${{ (vars.DOCKER_USERNAME != '') && (env.DOCKERHUB_TOKEN != '') }} @@ -290,9 +312,12 @@ jobs: docker manifest push ${{ env.DOCKER_BRANCH }} docker manifest push ${{ env.GHCR_TAG }} docker manifest push ${{ env.GHCR_BRANCH }} + docker manifest push ${{ env.GLCR_TAG }} + docker manifest push ${{ env.GLCR_BRANCH }} - name: Add Image Links to Job Summary if: ${{ (vars.DOCKER_USERNAME != '') && (env.DOCKERHUB_TOKEN != '') }} run: | echo "- \`docker pull ${{ env.DOCKER_TAG }}\`" >> $GITHUB_STEP_SUMMARY echo "- \`docker pull ${{ env.GHCR_TAG }}\`" >> $GITHUB_STEP_SUMMARY + echo "- \`docker pull ${{ env.GLCR_TAG }}\`" >> $GITHUB_STEP_SUMMARY diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c1f58ffa..b6dac288 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -127,49 +127,6 @@ artifacts: - if: $CI interruptible: true -.push-oci-image: - stage: publish - image: docker:26.1.1 - services: - - docker:26.1.1-dind - variables: - IMAGE_SUFFIX_AMD64: amd64 - IMAGE_SUFFIX_ARM64V8: arm64v8 - script: - - docker load -i oci-image-amd64.tar.gz - - IMAGE_ID_AMD64=$(docker images -q conduit:main) - - docker load -i oci-image-arm64v8.tar.gz - - IMAGE_ID_ARM64V8=$(docker images -q conduit:main) - # Tag and push the architecture specific images - - docker tag $IMAGE_ID_AMD64 $IMAGE_NAME:$CI_COMMIT_SHA-$IMAGE_SUFFIX_AMD64 - - docker tag $IMAGE_ID_ARM64V8 $IMAGE_NAME:$CI_COMMIT_SHA-$IMAGE_SUFFIX_ARM64V8 - - docker push $IMAGE_NAME:$CI_COMMIT_SHA-$IMAGE_SUFFIX_AMD64 - - docker push $IMAGE_NAME:$CI_COMMIT_SHA-$IMAGE_SUFFIX_ARM64V8 - # Tag the multi-arch image - - docker manifest create $IMAGE_NAME:$CI_COMMIT_SHA --amend $IMAGE_NAME:$CI_COMMIT_SHA-$IMAGE_SUFFIX_AMD64 --amend $IMAGE_NAME:$CI_COMMIT_SHA-$IMAGE_SUFFIX_ARM64V8 - - docker manifest push $IMAGE_NAME:$CI_COMMIT_SHA - # Tag and push the git ref - - docker manifest create $IMAGE_NAME:$CI_COMMIT_REF_NAME --amend $IMAGE_NAME:$CI_COMMIT_SHA-$IMAGE_SUFFIX_AMD64 --amend $IMAGE_NAME:$CI_COMMIT_SHA-$IMAGE_SUFFIX_ARM64V8 - - docker manifest push $IMAGE_NAME:$CI_COMMIT_REF_NAME - # Tag git tags as 'latest' - - | - if [[ -n "$CI_COMMIT_TAG" ]]; then - docker manifest create $IMAGE_NAME:latest --amend $IMAGE_NAME:$CI_COMMIT_SHA-$IMAGE_SUFFIX_AMD64 --amend $IMAGE_NAME:$CI_COMMIT_SHA-$IMAGE_SUFFIX_ARM64V8 - docker manifest push $IMAGE_NAME:latest - fi - dependencies: - - artifacts - only: - - main - - tags - -oci-image:push-gitlab: - extends: .push-oci-image - variables: - IMAGE_NAME: $CI_REGISTRY_IMAGE/conduwuit - before_script: - - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - pages: stage: publish dependencies: