forked from bcgov/dts-endorser-service
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Rajpal Chauhan <[email protected]>
- Loading branch information
Showing
1 changed file
with
93 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |