From 2ddf6516136060b5dfa6eefbd93aed3168c83e0f Mon Sep 17 00:00:00 2001
From: Tobias Gesellchen <tobias@gesellix.de>
Date: Sat, 30 Apr 2022 17:06:18 +0000
Subject: [PATCH] Release multi-platform Docker images (#222)
---
.github/workflows/release.yml | 102 +++++++++++++++++++++++++++++++++++---------------
1 files changed, 71 insertions(+), 31 deletions(-)
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 26ef2e6..f719824 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -20,7 +20,7 @@
env:
GITHUB_CONTEXT: ${{ toJSON(github) }}
run: echo "$GITHUB_CONTEXT"
- - name: Install wine+rpm for ditribution
+ - name: Install wine+rpm for distribution
shell: bash
run: |
sudo dpkg --add-architecture i386
@@ -88,36 +88,6 @@
opendj-doc-generated-ref/target/*.zip
opendj-dsml-servlet/target/*.war
opendj-rest2ldap-servlet/target/*.war
- - name: Docker publish hub.docker.com
- env:
- DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
- DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
- if: ${{ env.DOCKER_PASSWORD!='' && env.DOCKER_USERNAME!=''}}
- continue-on-error: true
- shell: bash
- run: |
- echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
- docker build opendj-packages/opendj-docker -f opendj-packages/opendj-docker/Dockerfile -t ${GITHUB_REPOSITORY,,} -t ${GITHUB_REPOSITORY,,}:${{ github.event.inputs.releaseVersion }} --build-arg VERSION=${{ github.event.inputs.releaseVersion }}
- docker push ${GITHUB_REPOSITORY,,}
- docker push ${GITHUB_REPOSITORY,,}:${{ github.event.inputs.releaseVersion }}
- docker build opendj-packages/opendj-docker -f opendj-packages/opendj-docker/Dockerfile-alpine -t ${GITHUB_REPOSITORY,,}:alpine -t ${GITHUB_REPOSITORY,,}:${{ github.event.inputs.releaseVersion }}-alpine --build-arg VERSION=${{ github.event.inputs.releaseVersion }}
- docker push ${GITHUB_REPOSITORY,,}:alpine
- docker push ${GITHUB_REPOSITORY,,}:${{ github.event.inputs.releaseVersion }}-alpine
- - name: Docker publish docker.pkg.github.com
- continue-on-error: true
- shell: bash
- env:
- GITHUB_REPOSITORY_NAME: ${{ github.event.repository.name }}
- GITHUB_ACTOR: ${{ github.actor }}
- GITHUB_TOKEN: ${{ github.token }}
- run: |
- echo "$GITHUB_TOKEN" | docker login -u "Open Identity Platform Community" docker.pkg.github.com --password-stdin
- docker build opendj-packages/opendj-docker -f opendj-packages/opendj-docker/Dockerfile -t docker.pkg.github.com/${GITHUB_REPOSITORY,,}/${GITHUB_REPOSITORY_NAME,,} -t docker.pkg.github.com/${GITHUB_REPOSITORY,,}/${GITHUB_REPOSITORY_NAME,,}:${{ github.event.inputs.releaseVersion }} --build-arg VERSION=${{ github.event.inputs.releaseVersion }}
- docker push docker.pkg.github.com/${GITHUB_REPOSITORY,,}/${GITHUB_REPOSITORY_NAME,,}
- docker push docker.pkg.github.com/${GITHUB_REPOSITORY,,}/${GITHUB_REPOSITORY_NAME,,}:${{ github.event.inputs.releaseVersion }}
- docker build opendj-packages/opendj-docker -f opendj-packages/opendj-docker/Dockerfile-alpine -t docker.pkg.github.com/${GITHUB_REPOSITORY,,}/${GITHUB_REPOSITORY_NAME,,}:alpine -t docker.pkg.github.com/${GITHUB_REPOSITORY,,}/${GITHUB_REPOSITORY_NAME,,}:${{ github.event.inputs.releaseVersion }}-alpine --build-arg VERSION=${{ github.event.inputs.releaseVersion }}
- docker push docker.pkg.github.com/${GITHUB_REPOSITORY,,}/${GITHUB_REPOSITORY_NAME,,}:alpine
- docker push docker.pkg.github.com/${GITHUB_REPOSITORY,,}/${GITHUB_REPOSITORY_NAME,,}:${{ github.event.inputs.releaseVersion }}-alpine
- uses: actions/checkout@v3
continue-on-error: true
with:
@@ -139,3 +109,73 @@
git tag -f ${{ github.event.inputs.releaseVersion }}
git push --quiet --force
git push --quiet --force origin ${{ github.event.inputs.releaseVersion }}
+ release-docker:
+ name: Docker release
+ runs-on: 'ubuntu-latest'
+ needs:
+ - release
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ ref: ${{ github.event.inputs.releaseVersion }}
+ fetch-depth: 1
+ submodules: recursive
+ - name: Docker meta (default)
+ id: meta
+ uses: docker/metadata-action@v3
+ with:
+ images: |
+ ${{ github.repository }}
+ ghcr.io/${{ github.repository }}/${{ github.event.repository.name }}
+ tags: |
+ type=raw,value=latest
+ type=raw,value=${{ github.event.inputs.releaseVersion }}
+ - name: Docker meta (alpine)
+ id: meta_alpine
+ uses: docker/metadata-action@v3
+ with:
+ images: |
+ ${{ github.repository }}
+ ghcr.io/${{ github.repository }}/${{ github.event.repository.name }}
+ tags: |
+ type=raw,value=alpine
+ type=raw,value=${{ github.event.inputs.releaseVersion }}-alpine
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@v1
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v1
+ - name: Login to DockerHub
+ uses: docker/login-action@v1
+ with:
+ username: ${{ secrets.DOCKER_USERNAME }}
+ password: ${{ secrets.DOCKER_PASSWORD }}
+ - name: Login to GHCR
+ uses: docker/login-action@v1
+ with:
+ registry: ghcr.io
+ username: ${{ github.repository_owner }}
+ password: ${{ secrets.GITHUB_TOKEN }}
+ - name: Build and push image (default)
+ uses: docker/build-push-action@v2
+ continue-on-error: true
+ with:
+ context: ./opendj-packages/opendj-docker
+ file: ./opendj-packages/opendj-docker/Dockerfile
+ build-args: |
+ VERSION=${{ github.event.inputs.releaseVersion }}
+ platforms: linux/amd64,linux/arm64/8
+ push: true
+ tags: ${{ steps.meta.outputs.tags }}
+ labels: ${{ steps.meta.outputs.labels }}
+ - name: Build and push image (alpine)
+ continue-on-error: true
+ uses: docker/build-push-action@v2
+ with:
+ context: ./opendj-packages/opendj-docker
+ file: ./opendj-packages/opendj-docker/Dockerfile-alpine
+ build-args: |
+ VERSION=${{ github.event.inputs.releaseVersion }}
+ platforms: linux/amd64,linux/arm64/8
+ push: true
+ tags: ${{ steps.meta_alpine.outputs.tags }}
+ labels: ${{ steps.meta_alpine.outputs.labels }}
--
Gitblit v1.10.0