Merge pull request #1001 from bcgov/bugfix/AB#27634-failing-submissions #679
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
name: Dev - Build & Push docker images | |
on: | |
push: | |
branches: [ "dev" ] | |
paths-ignore: | |
- '.github/**' | |
- '.gitignore' | |
- 'database/**' | |
- 'documentation/**' | |
- 'openshift/**' | |
- 'tests/**' | |
- 'CODE_OF_CONDUCT.md' | |
- 'COMPLIANCE.yaml' | |
- 'CONTRIBUTING.md' | |
- 'LICENSE' | |
- 'README.md' | |
- 'SECURITY.md' | |
# Allow manual workflow triggering | |
workflow_dispatch: | |
# Workflow dependencies | |
env: | |
TARGET_ENV: dev | |
GH_TOKEN: ${{secrets.GH_API_TOKEN}} | |
OC_CLUSTER: ${{ vars.OPENSHIFT_CLUSTER }} | |
OC_REGISTRY: ${{ vars.OPENSHIFT_REGISTRY }} | |
OC_AUTH_TOKEN: ${{ secrets.OPENSHIFT_TOKEN }} | |
OC_TARGET_PROJECT: ${{ vars.OPENSHIFT_NAMESPACE }} | |
JFROG_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }} | |
JFROG_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }} | |
JFROG_REPO_PATH: ${{ vars.ARTIFACTORY_REPO }} | |
JFROG_SERVICE: ${{ vars.ARTIFACTORY_SERVICE }} | |
UGM_BUILD_VERSION: ${{vars.UGM_BUILD_VERSION}} | |
UGM_BUILD_REVISION: ${{vars.UGM_BUILD_REVISION}} | |
UGM_RELEASE_PREFIX: Unity_Grant_Manager_v | |
UGM_RELEASE_MESSAGE: "Development deployment" | |
jobs: | |
Setup: | |
runs-on: ubuntu-latest | |
environment: dev | |
steps: | |
- name: Get variables | |
run: | | |
echo "Target: $TARGET_ENV" | |
echo "BaseRef: $GITHUB_REF_NAME" | |
echo "Environment: $TARGET_ENV OC_TARGET_PROJECT=$OC_TARGET_PROJECT" | |
echo "Environment: $TARGET_ENV JFROG_REPO_PATH=$JFROG_REPO_PATH" | |
echo "..." | |
env | sort | |
- name: Get current date | |
id: date_selector | |
run: | | |
echo "DATE=$(date +'%B %e, %Y')" >> $GITHUB_OUTPUT | |
outputs: | |
DATE: ${{steps.date_selector.outputs.DATE}} | |
Branch: | |
needs: [Setup] | |
runs-on: ubuntu-latest | |
environment: dev | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: '1' | |
- name: Get short commitId | |
id: get_commit | |
run: | | |
echo "SHA_SHORT=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT | |
- name: List merged branch | |
id: get_branch | |
run: | | |
git log -1 | |
MERGED_BRANCH=$(git log -1 | grep -oE 'from bcgov/[^ ]+' | sed 's/from bcgov\///') | |
if [ -z "$MERGED_BRANCH" ]; then | |
echo "Direct push into --env ${{env.TARGET_ENV}}" | |
echo "MERGED_BRANCH=push" >> $GITHUB_OUTPUT | |
else | |
echo "Merged branch: $MERGED_BRANCH" | |
echo "MERGED_BRANCH=$MERGED_BRANCH" >> $GITHUB_OUTPUT | |
fi | |
outputs: | |
SHA_SHORT: ${{steps.get_commit.outputs.SHA_SHORT}} | |
MERGED_BRANCH: ${{steps.get_branch.outputs.MERGED_BRANCH}} | |
PushVariables: | |
needs: [Setup,Branch] | |
runs-on: ubuntu-latest | |
environment: dev | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: '1' | |
- name: Set repository version variables | |
id: set_version | |
run: | | |
gh variable set UGM_BUILD_REVISION --env ${{env.TARGET_ENV}} --body "${{needs.Branch.outputs.SHA_SHORT}}" | |
echo "UGM_BUILD_REVISION=${{needs.Branch.outputs.SHA_SHORT}}" >> $GITHUB_ENV | |
- name: Get repository version variables | |
id: get_version | |
run: | | |
gh variable list --env ${{env.TARGET_ENV}} | |
echo "..." | |
echo "buildArgs --env ${{env.TARGET_ENV}} UNITY_BUILD_VERSION: ${{env.UGM_BUILD_VERSION}}, UNITY_BUILD_REVISION: ${{env.UGM_BUILD_REVISION}}, Merged Branch: ${{needs.Branch.outputs.MERGED_BRANCH}}" | |
Build: | |
needs: [Setup,Branch,PushVariables] | |
runs-on: ubuntu-latest | |
environment: dev | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Build Docker images | |
run: | | |
rm -f ./docker-compose.override.yml | |
echo "buildArgs UNITY_BUILD_VERSION: ${{env.UGM_BUILD_VERSION}}, UNITY_BUILD_REVISION: ${{env.UGM_BUILD_REVISION}}" | |
docker build --build-arg UNITY_BUILD_VERSION=${{env.UGM_BUILD_VERSION}} --build-arg UNITY_BUILD_REVISION=${{env.UGM_BUILD_REVISION}} -t unity-grantmanager-web -f src/Unity.GrantManager.Web/Dockerfile . | |
docker build -t unity-grantmanager-dbmigrator -f src/Unity.GrantManager.DbMigrator/Dockerfile . | |
working-directory: ./applications/Unity.GrantManager | |
- name: Connect to JFrog Artifactory non-interactive login using --password-stdin | |
run: | | |
echo "$JFROG_PASSWORD" | docker login -u "$JFROG_USERNAME" --password-stdin $JFROG_SERVICE | |
- name: Push application images to Artifactory container registry | |
run: | | |
docker tag unity-grantmanager-dbmigrator $JFROG_SERVICE/$JFROG_REPO_PATH/unity-grantmanager-dbmigrator | |
docker push $JFROG_SERVICE/$JFROG_REPO_PATH/unity-grantmanager-dbmigrator | |
docker tag unity-grantmanager-web $JFROG_SERVICE/$JFROG_REPO_PATH/unity-grantmanager-web | |
docker push $JFROG_SERVICE/$JFROG_REPO_PATH/unity-grantmanager-web | |
- name: Disconnect docker from JFrog Artifactory | |
run: | | |
docker logout | |
- name: Install OpenShift CLI | |
run: | | |
curl -LO https://mirror.openshift.com/pub/openshift-v4/clients/oc/latest/linux/oc.tar.gz | |
tar -xvf oc.tar.gz | |
sudo mv oc /usr/local/bin | |
- name: Verify OpenShift CLI installation | |
run: oc version | |
- name: Connect to OpenShift API non-interactive login using current session token | |
run: | | |
oc login --token=$OC_AUTH_TOKEN --server=$OC_CLUSTER | |
oc registry login | |
docker login -u unused -p $(oc whoami -t) $OC_REGISTRY | |
- name: Push application images to OpenShift container registry | |
run: | | |
docker tag unity-grantmanager-dbmigrator $OC_REGISTRY/$OC_TARGET_PROJECT/unity-grantmanager-dbmigrator | |
docker push $OC_REGISTRY/$OC_TARGET_PROJECT/unity-grantmanager-dbmigrator | |
docker tag unity-grantmanager-web $OC_REGISTRY/$OC_TARGET_PROJECT/unity-grantmanager-web | |
docker push $OC_REGISTRY/$OC_TARGET_PROJECT/unity-grantmanager-web | |
- name: Disconnect docker from OpenShift container registry | |
run: | | |
docker logout |