Skip to content

Commit

Permalink
Fix tag publish
Browse files Browse the repository at this point in the history
  • Loading branch information
piyushroshan committed Apr 28, 2024
1 parent 23961d4 commit da92874
Show file tree
Hide file tree
Showing 3 changed files with 226 additions and 127 deletions.
126 changes: 0 additions & 126 deletions .github/workflows/publish-tag.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ jobs:
if: steps.branch-name.outputs.is_tag == 'true'
run: |
echo "TAG_NAME=${{ steps.branch-name.outputs.tag }}" >> ${GITHUB_ENV}
echo "TAG_LATEST=latest" >> ${GITHUB_ENV}
echo "TAG_LATEST=${{ steps.branch-name.outputs.tag }}" >> ${GITHUB_ENV}
- name: Running on a branch and merge.
if: steps.branch-name.outputs.is_tag != 'true' && github.event_name == 'push' && steps.branch-name.outputs.current_branch != 'main'
Expand Down
225 changes: 225 additions & 0 deletions .github/workflows/workflow-multiarch.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,225 @@
name: Release Publish
on: workflow_dispatch

jobs:
build-context:
runs-on: ubuntu-latest
steps:
- name: Dump GitHub context
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo "$GITHUB_CONTEXT"
build:
needs: build-context
strategy:
matrix:
include:
- runner: ubuntu-latest
platform: linux/amd64
arch_alias: 'amd64'
- runner: ubuntu-latest-arm64
platform: linux/arm64
arch_alias: 'arm64'
runs-on: ${{ matrix.runner }}
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Env seen prerun
run: env

- name: Get branch metadata
id: branch-name
uses: tj-actions/branch-names@v8

- name: Current tag name
run: |
echo "Tag if exist: ${{ steps.branch-name.outputs.tag }}"
- name: If not a tag, terminate the workflow
if: steps.branch-name.outputs.is_tag != 'true'
run: exit 1

- name: Running on a tag.
run: |
echo "TAG_NAME=${{ steps.branch-name.outputs.tag }}" >> ${GITHUB_ENV}
echo "TAG_NAME=${{ steps.branch-name.outputs.tag }}" > tag_name.txt
# Archive the tag name
- name: Archive tag name
uses: actions/upload-artifact@v2
with:
name: tag_name
path: tag_name.txt

# setup Docker build action
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3
- name: Set up QEMU
id: qemu
uses: docker/setup-qemu-action@v3

- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Build crapi-identity all platforms and push to Docker Hub
uses: docker/build-push-action@v3
with:
context: ./services/identity
tags: crapi/crapi-identity:${{ env.TAG_NAME }}-${{ matrix.arch_alias }}
platforms: ${{ matrix.platform }}
push: true
cache-from: type=gha,scope=identity-service
cache-to: type=gha,mode=max,scope=identity-service

- name: Build crapi-workshop all platforms and push to Docker Hub
uses: docker/build-push-action@v3
with:
context: ./services/workshop
tags: crapi/crapi-workshop:${{ env.TAG_NAME }}-${{ matrix.arch_alias }}
platforms: ${{ matrix.platform }}
push: true
cache-from: type=gha,scope=workshop-service
cache-to: type=gha,mode=max,scope=workshop-service

- name: Build crapi-chatbot all platforms and push to Docker Hub
uses: docker/build-push-action@v3
with:
context: ./services/chatbot
tags: crapi/crapi-chatbot:${{ env.TAG_NAME }}-${{ matrix.arch_alias }}
platforms: ${{ matrix.platform }}
push: true
cache-from: type=gha,scope=chatbot-service
cache-to: type=gha,mode=max,scope=chatbot-service

- name: Build crapi-community all platforms and push to Docker Hub
uses: docker/build-push-action@v3
with:
context: ./services/community
tags: crapi/crapi-community:${{ env.TAG_NAME }}-${{ matrix.arch_alias }}
platforms: ${{ matrix.platform }}
push: true
cache-from: type=gha,scope=community-service
cache-to: type=gha,mode=max,scope=community-service

- name: Build crapi-web all platforms and push to Docker Hub
uses: docker/build-push-action@v3
with:
context: ./services/web
tags: crapi/crapi-web:${{ env.TAG_NAME }}-${{ matrix.arch_alias }}
platforms: ${{ matrix.platform }}
push: true
cache-from: type=gha,scope=web-service
cache-to: type=gha,mode=max,scope=web-service

- name: Build gateway-service all platforms and push to Docker Hub
uses: docker/build-push-action@v3
with:
context: ./services/gateway-service
tags: crapi/gateway-service:${{ env.TAG_NAME }}-${{ matrix.arch_alias }}
platforms: ${{ matrix.platform }}
push: true
cache-from: type=gha,scope=gateway-service
cache-to: type=gha,mode=max,scope=gateway-service

- name: Build mailhog all platforms and push to Docker Hub
uses: docker/build-push-action@v3
with:
context: ./services/mailhog
tags: crapi/mailhog:${{ env.TAG_NAME }}-${{ matrix.arch_alias }}
platforms: ${{ matrix.platform }}
push: true
cache-from: type=gha,scope=mailhog-service
cache-to: type=gha,mode=max,scope=mailhog-service

publish-manifests:
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Download tag name
uses: actions/download-artifact@v2
with:
name: tag_name
path: .

- name: Read tag name
id: tag_name
run: |
echo "TAG_NAME=$(cat tag_name.txt)" >> $GITHUB_ENV
- name: Create and push manifest images for crapi-identity
uses: Noelware/docker-manifest-action@v1
with:
inputs: |
crapi/crapi-identity:${{ env.TAG_NAME }}-amd64
crapi/crapi-identity:${{ env.TAG_NAME }}-arm64
outputs: |
crapi/crapi-identity:${{ env.TAG_NAME }}
push: true

- name: Create and push manifest images for crapi-workshop
uses: Noelware/docker-manifest-action@v1
with:
inputs: |
crapi/crapi-workshop:${{ env.TAG_NAME }}-amd64
crapi/crapi-workshop:${{ env.TAG_NAME }}-arm64
outputs: |
crapi/crapi-workshop:${{ env.TAG_NAME }}
push: true

- name: Create and push manifest images for crapi-chatbot
uses: Noelware/docker-manifest-action@v1
with:
inputs: |
crapi/crapi-chatbot:${{ env.TAG_NAME }}-amd64
crapi/crapi-chatbot:${{ env.TAG_NAME }}-arm64
outputs: |
crapi/crapi-chatbot:${{ env.TAG_NAME }}
push: true

- name: Create and push manifest images for crapi-community
uses: Noelware/docker-manifest-action@v1
with:
inputs: |
crapi/crapi-community:${{ env.TAG_NAME }}-amd64
crapi/crapi-community:${{ env.TAG_NAME }}-arm64
outputs: |
crapi/crapi-community:${{ env.TAG_NAME }}
push: true

- name: Create and push manifest images for crapi-web
uses: Noelware/docker-manifest-action@v1
with:
inputs: |
crapi/crapi-web:${{ env.TAG_NAME }}-amd64
crapi/crapi-web:${{ env.TAG_NAME }}-arm64
outputs: |
crapi/crapi-web:${{ env.TAG_NAME }}
push: true

- name: Create and push manifest images for gateway-service
uses: Noelware/docker-manifest-action@v1
with:
inputs: |
crapi/gateway-service:${{ env.TAG_NAME }}-amd64
crapi/gateway-service:${{ env.TAG_NAME }}-arm64
outputs: |
crapi/gateway-service:${{ env.TAG_NAME }}
push: true

- name: Create and push manifest images for mailhog
uses: Noelware/docker-manifest-action@v1
with:
inputs: |
crapi/mailhog:${{ env.TAG_NAME }}-amd64
crapi/mailhog:${{ env.TAG_NAME }}-arm64
outputs: |
crapi/mailhog:${{ env.TAG_NAME }}
push: true

0 comments on commit da92874

Please sign in to comment.