Skip to content

Commit

Permalink
Merge branch 'main' into forms-960-idp-refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
usingtechnology committed Feb 14, 2024
2 parents 958d0e8 + 913cbf1 commit 734bce2
Show file tree
Hide file tree
Showing 12 changed files with 242 additions and 251 deletions.
40 changes: 33 additions & 7 deletions .github/actions/build-push-container/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -56,17 +56,43 @@ inputs:
description: Proxy URL to BC Geo Address API URL for advance search
required: true
default: "../api/v1/bcgeoaddress/advance/address"
ref:
description: The checkout ref id
required: false
default: ''
pr_number:
description: Pull request number
required: false
type: string

runs:
using: composite
steps:
- name: Checkout repository from pull request
uses: actions/checkout@v3
with:
ref: ${{ inputs.ref }}
if: ${{ inputs.ref != '' }}
- name: Checkout repository
uses: actions/checkout@v3
if: ${{ inputs.ref == '' }}

- name: Set variables
run: |
echo "SHA=sha-$(git rev-parse --short HEAD)" >> $GITHUB_ENV
echo "IMAGE_REVISION=$(git rev-parse HEAD)" >> $GITHUB_ENV
echo "IMAGE_VERSION=main" >> $GITHUB_ENV
if [[ "${{ inputs.ref }}" != '' ]]; then
git fetch origin ${{ inputs.ref }}
echo "SHA=sha-$(git rev-parse --short HEAD)" >> $GITHUB_ENV
echo "IMAGE_REVISION=$(git rev-parse HEAD)" >> $GITHUB_ENV
echo "IMAGE_VERSION=pr-${{ inputs.pr_number }}" >> $GITHUB_ENV
fi
- name: Creates env variables
env:
VITE_TITLE: ${{ inputs.app_title }}
VITE_CONTACT: ${{ inputs.VITE_CONTACT }}
VITE_CONTACT: ${{ inputs.app_contact }}
VITE_HOWTOURL: ${{ inputs.app_howtourl }}
VITE_CHEFSTOURURL: ${{ inputs.app_chefstoururl }}
VITE_FRONTEND_BASEPATH: ${{ inputs.route_path }}
Expand Down Expand Up @@ -122,12 +148,12 @@ runs:
latest=true
# Creates tags based off of branch names and semver tags
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
type=sha
type=raw,value=ghcr.io/${{ env.GH_USERNAME }}/${{ inputs.image_name }}:${{ env.IMAGE_VERSION }}
type=raw,value=ghcr.io/${{ env.GH_USERNAME }}/${{ inputs.image_name }}:${{ env.SHA }}
type=raw,value=ghcr.io/${{ env.GH_USERNAME }}/${{ inputs.image_name }}:latest
labels: |
org.opencontainers.image.revision=${{ env.IMAGE_REVISION }}
org.opencontainers.image.version=${{ env.IMAGE_VERSION }}
- name: Build and Push to Container Registry
id: builder
Expand Down
10 changes: 10 additions & 0 deletions .github/actions/deploy-to-environment/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,22 @@ inputs:
description: Route Subpath Mount point
required: true
default: "/app"
ref:
description: The checkout ref id
required: false
default: ''

runs:
using: composite
steps:
- name: Checkout repository from pull request
uses: actions/checkout@v3
with:
ref: ${{ inputs.ref }}
if: ${{ inputs.ref != '' }}
- name: Checkout repository
uses: actions/checkout@v3
if: ${{ inputs.ref == '' }}

- name: Login to OpenShift Cluster
uses: jasonchung1871/[email protected]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,26 +1,31 @@
name: Pull Request Closed
name: Close pull request deployment

env:
ACRONYM: chefs

on:
pull_request:
branches:
- main
types:
- closed
workflow_dispatch:
inputs:
pr-number:
description: Pull request number, leave blank for dev/test/prod deployment
required: false
type: string
environment:
description: Environment name; choose dev for PR
required: true
type: choice
options:
- dev
- test
- prod
default: dev

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
remove-pr-dev:
name: Remove PR build from dev namespace
if: "! github.event.pull_request.head.repo.fork"
environment:
name: pr
url: https://${{ env.ACRONYM }}-dev-pr-${{ github.event.number }}.apps.silver.devops.gov.bc.ca
runs-on: ubuntu-latest
timeout-minutes: 12
steps:
Expand All @@ -36,16 +41,11 @@ jobs:
- name: Remove PR Deployment
shell: bash
run: |
oc delete -n ${{ vars.NAMESPACE_PREFIX }}-dev all,secret,networkpolicy,rolebinding --selector app=${{ env.ACRONYM }}-pr-${{ github.event.number }}
oc delete -n ${{ vars.NAMESPACE_PREFIX }}-dev all,svc,cm,sa,role,secret --selector cluster-name=pr-${{ github.event.number }}
oc delete -n ${{ vars.NAMESPACE_PREFIX }}-dev all,secret,networkpolicy,rolebinding --selector app=${{ env.ACRONYM }}-pr-${{ github.event.inputs.pr-number }}
oc delete -n ${{ vars.NAMESPACE_PREFIX }}-dev all,svc,cm,sa,role,secret --selector cluster-name=pr-${{ github.event.inputs.pr-number }}
- name: Remove Release Comment on PR
uses: marocchino/sticky-pull-request-comment@v2
with:
header: release
delete: true
- name: Remove Github Deployment Environment
uses: strumwolf/delete-deployment-environment@v2
with:
environment: pr
onlyRemoveDeployments: true
token: ${{ secrets.GITHUB_TOKEN }}
number: ${{ github.event.inputs.pr-number }}
138 changes: 138 additions & 0 deletions .github/workflows/.deploy.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
name: Deploy

env:
ACRONYM: chefs

on:
workflow_dispatch:
inputs:
pr-number:
description: Pull request number, leave blank for dev/test/prod deployment
required: false
type: string
environment:
description: Environment name; choose dev for PR
required: true
type: choice
options:
- dev
- test
- prod
default: dev

concurrency:
group: ${{ github.workflow }}-${{ github.event.inputs.pr-number || github.ref }}
cancel-in-progress: true

jobs:
set-vars:
name: Set variables
runs-on: ubuntu-latest
outputs:
APP_TITLE: ${{ steps.vars.outputs.APP_TITLE }}
ENVIRONMENT: ${{ steps.vars.outputs.ENVIRONMENT }}
JOB_NAME: ${{ steps.vars.outputs.JOB_NAME }}
ROUTE_PATH: ${{ steps.vars.outputs.ROUTE_PATH }}
URL: ${{ steps.vars.outputs.URL }}
ref: ${{ steps.vars.outputs.ref }}
steps:
- name: Setting variables
id: default-vars
env:
PR_NUMBER: ${{ github.event.inputs.pr-number }}
ENVIRONMENT: ${{ github.event.inputs.environment }}
ACRONYM: ${{ env.ACRONYM }}
run: |
echo "APP_TITLE=Common Hosted Forms" >> "$GITHUB_OUTPUT"
echo "ENVIRONMENT=$ENVIRONMENT" >> "$GITHUB_OUTPUT"
echo "JOB_NAME=master" >> "$GITHUB_OUTPUT"
echo "ROUTE_PATH=/app" >> "$GITHUB_OUTPUT"
echo "URL=https://$ACRONYM-$ENVIRONMENT.apps.silver.devops.gov.bc.ca" >> "$GITHUB_OUTPUT"
- name: Final variables
id: vars
env:
PR_NUMBER: ${{ github.event.inputs.pr-number }}
run: |
REF=refs/pull/$PR_NUMBER/head
echo REF:$REF
echo "ref=$REF" >> $GITHUB_OUTPUT
if [[ "$PR_NUMBER" != '' ]]; then
echo "APP_TITLE=${{ steps.default-vars.outputs.APP_TITLE }} - PR-$PR_NUMBER" >> "$GITHUB_OUTPUT"
echo "ENVIRONMENT=pr" >> "$GITHUB_OUTPUT"
echo "JOB_NAME=pr-$PR_NUMBER" >> "$GITHUB_OUTPUT"
echo "ROUTE_PATH=/pr-$PR_NUMBER" >> "$GITHUB_OUTPUT"
echo "URL=${{ steps.default-vars.outputs.URL }}/pr-$PR_NUMBER" >> "$GITHUB_OUTPUT"
else
echo "APP_TITLE=${{ steps.default-vars.outputs.APP_TITLE }}" >> "$GITHUB_OUTPUT"
echo "ENVIRONMENT=${{ steps.default-vars.outputs.ENVIRONMENT }}" >> "$GITHUB_OUTPUT"
echo "JOB_NAME=${{ steps.default-vars.outputs.JOB_NAME }}" >> "$GITHUB_OUTPUT"
echo "ROUTE_PATH=${{ steps.default-vars.outputs.ROUTE_PATH }}" >> "$GITHUB_OUTPUT"
echo "URL=${{ steps.default-vars.outputs.URL }}/app" >> "$GITHUB_OUTPUT"
fi
build:
name: Build & Push
runs-on: ubuntu-latest
needs: set-vars
timeout-minutes: 10
steps:
- name: Checkout repository from pull request
uses: actions/checkout@v3
with:
ref: ${{ needs.set-vars.outputs.ref }}
if: ${{ needs.set-vars.outputs.ref != '' }}
- name: Checkout repository
uses: actions/checkout@v3
if: ${{ needs.set-vars.outputs.ref == '' }}
- name: Build & Push
uses: ./.github/actions/build-push-container
with:
context: .
image_name: ${{ vars.APP_NAME }}
github_username: ${{ github.repository_owner }}
github_token: ${{ secrets.GITHUB_TOKEN }}
app_title: ${{ needs.set-vars.outputs.APP_TITLE }}
route_path: ${{ needs.set-vars.outputs.ROUTE_PATH }}
app_contact: ${{ vars.CHEFS_CONTACT }}
ref: ${{ needs.set-vars.outputs.ref }}
pr_number: ${{ github.event.inputs.pr-number }}

deploy:
name: Deploys to selected environment
environment:
name: ${{ needs.set-vars.outputs.ENVIRONMENT }}
url: ${{ needs.set-vars.outputs.URL }}
runs-on: ubuntu-latest
needs: [set-vars, build]
timeout-minutes: 12
steps:
- name: Checkout repository from pull request
uses: actions/checkout@v3
with:
ref: ${{ needs.set-vars.outputs.ref }}
if: ${{ needs.set-vars.outputs.ref != '' }}
- name: Checkout repository
uses: actions/checkout@v3
if: ${{ needs.set-vars.outputs.ref == '' }}
- name: Deploy to environment
uses: ./.github/actions/deploy-to-environment
with:
app_name: ${{ vars.APP_NAME }}
acronym: ${{ env.ACRONYM }}
environment: ${{ needs.set-vars.outputs.ENVIRONMENT }}
job_name: ${{ needs.set-vars.outputs.JOB_NAME }}
namespace_prefix: ${{ vars.NAMESPACE_PREFIX }}
namespace_environment: ${{ github.event.inputs.environment }}
openshift_server: ${{ secrets.OPENSHIFT_SERVER }}
openshift_token: ${{ secrets.OPENSHIFT_TOKEN }}
server_host: ${{ vars.SERVER_HOST }}
route_path: ${{ needs.set-vars.outputs.ROUTE_PATH }}
route_prefix: ${{ vars.ROUTE_PREFIX }}
ref: ${{ needs.set-vars.outputs.ref }}
- name: Release Comment on PR
uses: marocchino/sticky-pull-request-comment@v2
if: github.event.inputs.pr-number != '' && success()
with:
header: release
message: |
Release ${{ github.sha }} deployed at <https://${{ env.ACRONYM }}-dev.apps.silver.devops.gov.bc.ca/pr-${{ github.event.inputs.pr-number }}>
70 changes: 0 additions & 70 deletions .github/workflows/on_pr_opened.yaml

This file was deleted.

Loading

0 comments on commit 734bce2

Please sign in to comment.