Skip to content

Commit

Permalink
adding action yaml
Browse files Browse the repository at this point in the history
Signed-off-by: Rajpal Chauhan <[email protected]>
  • Loading branch information
rajpalc7 committed Dec 21, 2023
1 parent b18e756 commit 2dcc872
Showing 1 changed file with 93 additions and 0 deletions.
93 changes: 93 additions & 0 deletions .github/workflows/actions/deploy/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
name: Deploy
description: Deploy to OpenShift namespace

inputs:
environment:
description: The environment to which the image will be deployed.
required: true

# Image parameters
ghcr_token:
description: The token to use to login to the GHCR.
required: true
github_image_name:
description: The name of the image in the GHCR to be deployed.
required: true
image_digest:
description: The digest of the image to be deployed. Identifies the unique image tag in the GHCR.
required: true
openshift_image_name:
description: The name of the image to use when pushing to OpenShift.
required: true

# OpenShift parameters
openshift_server_url:
description: The URL of the OpenShift server.
required: true
namespace:
description: The OpenShift namespace where the image is to be deployed.
required: true
deployment_configuration:
description: The name of the OpenShift deployment configuration triggered by the new image.
required: true
openshift_token:
description: The token used to authenticate with the OpenShift server.
required: true

# rocket.chat notification parameters
# rocketchat_webhook:
# description: The URL to use for posting notifications to rocket.chat.
# required: true

runs:
using: composite
steps:
- name: Log in to the GHCR
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ inputs.ghcr_token }}

- name: Setup Openshift CLI
uses: redhat-actions/oc-login@v1
with:
openshift_server_url: ${{ inputs.openshift_server_url }}
openshift_token: ${{ inputs.openshift_token }}

- name: Login in to OpenShift container registry
shell: bash
run: |
oc registry login
- name: Tag the image in the GHCR as ${{ inputs.environment }}
shell: bash
run: |
docker pull ${{ inputs.github_image_name }}@${{ inputs.image_digest }}
docker tag ${{ inputs.github_image_name }}@${{ inputs.image_digest }} ${{ inputs.github_image_name }}:${{ inputs.environment }}
docker push ${{ inputs.github_image_name }}:${{ inputs.environment }}
- name: Tag the image in the OpenShift container registry as ${{ inputs.environment }}
shell: bash
run: |
docker pull ${{ inputs.github_image_name }}@${{ inputs.image_digest }}
docker tag ${{ inputs.github_image_name }}@${{ inputs.image_digest }} ${{ inputs.openshift_image_name }}:${{ inputs.environment }}
docker push ${{ inputs.openshift_image_name }}:${{ inputs.environment }}
- name: Trigger OpenShift rollout
shell: bash
run: |
echo starting rollout in ${{ inputs.namespace }}
oc -n ${{ inputs.namespace }} rollout status dc/${{ inputs.deployment_configuration }} --watch
# - name: Rocket.Chat Notification
# uses: RocketChat/[email protected]
# if: always()
# with:
# type: ${{ job.status }}
# job_name: '*Deployment to ${{ inputs.environment }}*'
# mention: 'here'
# mention_if: 'failure'
# channel: '#test-gha'
# url: ${{ inputs.rocketchat_webhook }}
# commit: true

0 comments on commit 2dcc872

Please sign in to comment.