Skip to content

Build And Add Job to Openshift Prod #31

Build And Add Job to Openshift Prod

Build And Add Job to Openshift Prod #31

name: Build And Add Job to Openshift Prod
env:
IMAGE_REGISTRY: ghcr.io/${{ github.repository }}
OPENSHIFT_SERVER: ${{ secrets.OPENSHIFT_SERVER }}
OPENSHIFT_TOKEN: ${{ secrets.OPENSHIFT_TOKEN }}
OPENSHIFT_NAMESPACE: ${{ secrets.NAMESPACE }}
CHEFS_SOILS_FORM_ID: ${{ secrets.CHEFS_SOILS_FORM_ID }}
CHEFS_SOILS_API_KEY: ${{ secrets.CHEFS_SOILS_API_KEY }}
CHEFS_SOILS_FORM_VERSION: ${{ secrets.CHEFS_SOILS_FORM_VERSION }}
CHEFS_HV_FORM_ID: ${{ secrets.CHEFS_HV_FORM_ID }}
CHEFS_HV_API_KEY: ${{ secrets.CHEFS_HV_API_KEY }}
CHEFS_HV_FORM_VERSION: ${{ secrets.CHEFS_HV_FORM_VERSION }}
CHEFS_MAIL_FORM_ID: ${{ secrets.CHEFS_MAIL_FORM_ID }}
CHEFS_MAIL_API_KEY: ${{ secrets.CHEFS_MAIL_API_KEY }}
CHEFS_MAIL_FORM_VERSION: ${{ secrets.CHEFS_MAIL_FORM_VERSION }}
CHES_API_OAUTH_SECRET: ${{ secrets.CHES_API_OAUTH_SECRET }}
MAPHUB_USER: ${{ secrets.MAPHUB_USER }}
MAPHUB_PASS: ${{ secrets.MAPHUB_PASS }}
SRC_CSV_ID: ${{ secrets.SRC_CSV_ID }}
SRC_LAYER_ID: ${{ secrets.SRC_LAYER_ID }}
RCV_CSV_ID: ${{ secrets.RCV_CSV_ID }}
RCV_LAYER_ID: ${{ secrets.RCV_LAYER_ID }}
HV_CSV_ID: ${{ secrets.HV_CSV_ID }}
HV_LAYER_ID: ${{ secrets.HV_LAYER_ID }}
WEB_MAP_APP_ID: ${{ secrets.WEB_MAP_APP_ID }}
CHEFS_API_URL: ${{ secrets.CHEFS_API_URL }}
AUTH_URL: ${{ secrets.AUTH_URL }}
CHES_URL: ${{ secrets.CHES_URL }}
LOGLEVEL: ${{ secrets.LOGLEVEL }}
NOTICE_STANDARD_TIME: ${{ secrets.NOTICE_STANDARD_TIME }}
APP_NAME: "sris"
TAG: ${{ github.event.inputs.RELEASE_VERSION }}
on:
workflow_dispatch:
inputs:
RELEASE_VERSION:
required: true
description: The Tag release to PROD.
concurrency:
group: ${{ github.workflow }}
cancel-in-progress: true
jobs:
Build_Deploy:
name: Build and deploy to OpenShift
runs-on: ubuntu-latest
environment: prod
steps:
- name: checkout repo content
uses: actions/checkout@v2 # checkout the repository content to GitHub runner.
- name: Log in to the Container registry
uses: docker/login-action@v2
with:
registry: ${{ env.IMAGE_REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Cache Docker layers
uses: actions/cache@v3
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-
- name: Build and push Application image
uses: docker/build-push-action@v3
with:
context: .
push: true
tags: |
"${{ env.IMAGE_REGISTRY }}/${{ env.APP_NAME }}:${{ env.TAG }}"
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Install oc
uses: redhat-actions/openshift-tools-installer@v1
with:
oc: 4.10
- name: Deploy
run: |
set +e -ux
# Login to OpenShift and select project
oc login --token=${{ env.OPENSHIFT_TOKEN }} --server=${{ env.OPENSHIFT_SERVER }}
oc tag ${{ env.IMAGE_REGISTRY }}/${{ env.APP_NAME }}:${{ env.TAG }} ${{ env.APP_NAME }}:${{ env.TAG }}
oc process -f ./openshift/sris-schedule-job.yml -p APP_NAME=${{ env.APP_NAME }} -p TAG=${{ env.TAG }} -p NAMESPACE=${{ env.OPENSHIFT_NAMESPACE }} \
-p CHEFS_SOILS_FORM_ID=${{ env.CHEFS_SOILS_FORM_ID }} -p CHEFS_SOILS_API_KEY=${{ env.CHEFS_SOILS_API_KEY }} -p CHEFS_SOILS_FORM_VERSION=${{ env.CHEFS_SOILS_FORM_VERSION }} \
-p CHEFS_HV_FORM_ID=${{ env.CHEFS_HV_FORM_ID }} -p CHEFS_HV_API_KEY=${{ env.CHEFS_HV_API_KEY }} -p CHEFS_HV_FORM_VERSION=${{ env.CHEFS_HV_FORM_VERSION }} \
-p CHEFS_MAIL_FORM_ID=${{ env.CHEFS_MAIL_FORM_ID }} -p CHEFS_MAIL_API_KEY=${{ env.CHEFS_MAIL_API_KEY }} -p CHEFS_MAIL_FORM_VERSION=${{ env.CHEFS_MAIL_FORM_VERSION }} \
-p CHES_API_OAUTH_SECRET=${{ env.CHES_API_OAUTH_SECRET }} \
-p MAPHUB_USER=${{ env.MAPHUB_USER }} -p MAPHUB_PASS=${{ env.MAPHUB_PASS }} \
-p SRC_CSV_ID=${{ env.SRC_CSV_ID }} -p SRC_LAYER_ID=${{ env.SRC_LAYER_ID }} \
-p RCV_CSV_ID=${{ env.RCV_CSV_ID }} -p RCV_LAYER_ID=${{ env.RCV_LAYER_ID }} \
-p HV_CSV_ID=${{ env.HV_CSV_ID }} -p HV_LAYER_ID=${{ env.HV_LAYER_ID }} \
-p WEB_MAP_APP_ID=${{ env.WEB_MAP_APP_ID }} -p CHEFS_API_URL=${{ env.CHEFS_API_URL }} \
-p AUTH_URL=${{ env.AUTH_URL }} -p CHES_URL=${{ env.CHES_URL }} \
-p LOGLEVEL=${{ env.LOGLEVEL }} -p NOTICE_STANDARD_TIME=${{ env.NOTICE_STANDARD_TIME }} \
| oc apply -f -
- uses: rickstaa/action-create-tag@v1
name: Create Release Tag in Git
with:
tag: "release/${{ env.TAG }}"
message: "Release version ${{ env.TAG }}"