From 5ebb20a5dc3246034b3e4f0995354cacbb519d6a Mon Sep 17 00:00:00 2001 From: Hunia Fatima Date: Wed, 23 Oct 2024 16:36:02 +0500 Subject: [PATCH] chore: initial structure with one image --- .github/workflows/push-docker-images.yml | 75 ++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 .github/workflows/push-docker-images.yml diff --git a/.github/workflows/push-docker-images.yml b/.github/workflows/push-docker-images.yml new file mode 100644 index 0000000..efc52cc --- /dev/null +++ b/.github/workflows/push-docker-images.yml @@ -0,0 +1,75 @@ +name: Build and Publish Docker Images + +on: + workflow_dispatch: + inputs: + branch: + description: "Target branch from which the source dockerfile from image will be sourced" + + schedule: + - cron: "0 4 * * 1-5" # UTC Time + +# Added for testing purposes. Will remove once the PR is finalised + pull_request: + branches: + - '**' + +jobs: + push: + runs-on: ubuntu-22.04 + + strategy: + matrix: + images: + - { + image_name: 'commerce-coordinator', + name: 'commerce coordinator', + platform: linux/arm64, + target: 'development', + owning_team_email: 'hunia.fatima@arbisoft.com' + } + + steps: + - name: Get tag name + id: get-tag-name + uses: actions/github-script@v5 + with: + script: | + const tagName = "${{ github.event.inputs.branch }}" || 'latest'; + console.log('Will use tag: ' + tagName); + return tagName; + result-encoding: string + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Login to DockerHub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_PASSWORD }} + + - name: Build and push Dev Docker image + uses: docker/build-push-action@v6 + with: + file: ./dockerfiles/${{matrix.images.image_name}}.Dockerfile + push: true + platforms: ${{ matrix.images.platform }} + target: ${{ matrix.images.target }} + tags: edxops/${{matrix.variant.tag}}:${{ steps.get-tag-name.outputs.result }} + + - name: Send failure notification + if: failure() + uses: dawidd6/action-send-mail@v3 + with: + server_address: email-smtp.us-east-1.amazonaws.com + server_port: 465 + username: ${{secrets.edx_smtp_username}} + password: ${{secrets.edx_smtp_password}} + subject: Push Image to docker.io/edxops failed in ${{matrix.images.name}} + to: ${{matrix.images.owning_team_email}} + from: github-actions + body: Push Image to docker.io/edxops for ${{matrix.images.name}} failed! For details see "github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"