From 3bc054b67ae22dc526998d0590352c3fdc2038ac Mon Sep 17 00:00:00 2001 From: lippertmarkus Date: Wed, 24 Jun 2020 18:10:04 +0200 Subject: [PATCH 1/2] add docker build workflow --- .github/workflows/docker-image.yml | 89 ++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 .github/workflows/docker-image.yml diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml new file mode 100644 index 000000000000..fc970ca1f1aa --- /dev/null +++ b/.github/workflows/docker-image.yml @@ -0,0 +1,89 @@ +name: Docker Image CI + +on: + push: + tags: + - v* + +defaults: + run: + shell: bash + +jobs: + build-linux: + name: Build & Push Linux Docker Images + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Docker Login + uses: Azure/docker-login@v1 + with: + username: ${{ secrets.DOCKERIO_USERNAME }} + password: ${{ secrets.DOCKERIO_PASSWORD }} + - name: Build & Push Linux Docker Images + env: + DOCKERIO_USERNAME: ${{ secrets.DOCKERIO_USERNAME }} + run: | + docker_org=$DOCKERIO_USERNAME + tag=$(basename $GITHUB_REF) + targets="workflow-controller argoexec argocli" + for target in $targets; do + image_name="${docker_org}/${target}:${tag}-linux" + docker build --target $target -t $image_name . + docker push $image_name + done + + build-windows: + name: Build & Push Windows Docker Images + runs-on: windows-2019 + steps: + - uses: actions/checkout@v2 + - name: Docker Login + uses: Azure/docker-login@v1 + with: + username: ${{ secrets.DOCKERIO_USERNAME }} + password: ${{ secrets.DOCKERIO_PASSWORD }} + - name: Build & Push Windows Docker Images + env: + DOCKERIO_USERNAME: ${{ secrets.DOCKERIO_USERNAME }} + run: | + docker_org=$DOCKERIO_USERNAME + tag=$(basename $GITHUB_REF) + targets="argoexec" + for target in $targets; do + image_name="${docker_org}/${target}:${tag}-windows" + docker build --target $target -t $image_name -f Dockerfile.windows . + docker push $image_name + done + + push-images: + name: Push Multiarch Image + runs-on: ubuntu-latest + needs: [build-linux, build-windows] + steps: + - uses: actions/checkout@v2 + - name: Docker Login + uses: Azure/docker-login@v1 + with: + username: ${{ secrets.DOCKERIO_USERNAME }} + password: ${{ secrets.DOCKERIO_PASSWORD }} + - name: Push Multiarch Image + env: + DOCKERIO_USERNAME: ${{ secrets.DOCKERIO_USERNAME }} + run: | + echo $(jq -c '. + { "experimental": "enabled" }' ${DOCKER_CONFIG}/config.json) > ${DOCKER_CONFIG}/config.json + + docker_org=$DOCKERIO_USERNAME + tag=$(basename $GITHUB_REF) + targets="workflow-controller argoexec argocli" + for target in $targets; do + image_name="${docker_org}/${target}:${tag}" + + if [ $target = "argoexec" ]; then + docker manifest create $image_name ${image_name}-linux ${image_name}-windows + else + docker manifest create $image_name ${image_name}-linux + fi + + docker manifest push $image_name + done \ No newline at end of file From 66ec7c677a54d4be388beb7bfb3679c51bc98484 Mon Sep 17 00:00:00 2001 From: lippertmarkus Date: Thu, 9 Jul 2020 09:01:50 +0200 Subject: [PATCH 2/2] also run on push to master --- .github/workflows/docker-image.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index fc970ca1f1aa..478ccec15096 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -4,6 +4,8 @@ on: push: tags: - v* + branches: + - master defaults: run: @@ -25,7 +27,12 @@ jobs: DOCKERIO_USERNAME: ${{ secrets.DOCKERIO_USERNAME }} run: | docker_org=$DOCKERIO_USERNAME + tag=$(basename $GITHUB_REF) + if [ $tag = "master" ]; then + tag="latest" + fi + targets="workflow-controller argoexec argocli" for target in $targets; do image_name="${docker_org}/${target}:${tag}-linux" @@ -48,7 +55,12 @@ jobs: DOCKERIO_USERNAME: ${{ secrets.DOCKERIO_USERNAME }} run: | docker_org=$DOCKERIO_USERNAME + tag=$(basename $GITHUB_REF) + if [ $tag = "master" ]; then + tag="latest" + fi + targets="argoexec" for target in $targets; do image_name="${docker_org}/${target}:${tag}-windows" @@ -74,7 +86,12 @@ jobs: echo $(jq -c '. + { "experimental": "enabled" }' ${DOCKER_CONFIG}/config.json) > ${DOCKER_CONFIG}/config.json docker_org=$DOCKERIO_USERNAME + tag=$(basename $GITHUB_REF) + if [ $tag = "master" ]; then + tag="latest" + fi + targets="workflow-controller argoexec argocli" for target in $targets; do image_name="${docker_org}/${target}:${tag}"