Skip to content

Commit

Permalink
Merge pull request #2126 from bcgov/release
Browse files Browse the repository at this point in the history
Release 1.0.1
  • Loading branch information
AlexZorkin authored Feb 27, 2025
2 parents d66a3af + 26e05f0 commit 44a6ed1
Show file tree
Hide file tree
Showing 291 changed files with 24,714 additions and 14,545 deletions.
8 changes: 4 additions & 4 deletions .github/workflows/cleanup-images.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@ jobs:
# This script will delete all image tags for both frontend and backend except the one being referenced
# The sample of search_string is lcfs-backend:0.2.0-20240403221450
# The sample of search_string is lcfs-backend:1.0.0-20240403221450
# The sample of oc_output could include
# lcfs-backend:0.2.0-20240403210040
# lcfs-backend:0.2.0-20240403211844
# lcfs-backend:0.2.0-20240403221450
# lcfs-backend:1.0.0-20240403210040
# lcfs-backend:1.0.0-20240403211844
# lcfs-backend:1.0.0-20240403221450
# The script will remove the first two image tags
delete_resources() {
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/cron-cleanup-workflow-runs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@ jobs:
token: ${{ github.token }}
repository: ${{ github.repository }}
retain_days: 5
keep_minimum_runs: 0
keep_minimum_runs: 10
69 changes: 38 additions & 31 deletions .github/workflows/cypress.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ name: Cypress Daily

on:
schedule:
- cron: '0 16 * * *' # Runs daily at 16:00 UTC (8 AM PST)
workflow_dispatch: # Allows manual triggering of the workflow
- cron: "0 16 * * *" # Runs daily at 16:00 UTC (8 AM PST)
workflow_dispatch: # Allows manual triggering of the workflow

jobs:
cypress:
Expand All @@ -20,7 +20,7 @@ jobs:
redis:
image: bitnami/redis:6.2.5
env:
ALLOW_EMPTY_PASSWORD: "yes"
REDIS_PASSWORD: development_only
ports:
- 6379:6379
rabbitmq:
Expand All @@ -30,18 +30,16 @@ jobs:
RABBITMQ_DEFAULT_PASS: development_only
RABBITMQ_DEFAULT_VHOST: lcfs
ports:
- "15672:15672"
- 15672:15672
- 5672:5672
steps:
- uses: actions/checkout@v2

- name: Build and Run Backend Service
run: |
docker build -t backend-service -f ./backend/Dockerfile ./backend
docker run -d --name backend \
--network=host \
-e LCFS_DB_HOST=localhost \
-e LCFS_REDIS_HOST=localhost \
backend-service
- name: Build Backend Service
run: docker build -t backend-service -f ./backend/Dockerfile ./backend

- name: Run Backend Service
run: docker run -d --name backend --network=host -e LCFS_DB_HOST=localhost -e LCFS_REDIS_HOST=localhost -e LCFS_RABBITMQ_HOST=localhost -e LCFS_CHES_ENABLED=False backend-service

- name: Wait for DB to be Ready
run: sleep 20
Expand All @@ -52,34 +50,43 @@ jobs:
- name: Data Seeding
run: docker exec backend poetry run python /app/lcfs/db/seeders/seed_database.py

- name: Build and Run Frontend Service
run: |
docker build -t frontend-service -f ./frontend/Dockerfile.dev ./frontend
docker run -d --name frontend \
--network=host \
frontend-service
- name: Build Frontend Service
run: docker build -t frontend-service -f ./frontend/Dockerfile.dev ./frontend

- name: Run Frontend Service
run: docker run -d --name frontend --network=host frontend-service

- name: Cypress run
uses: cypress-io/github-action@v2
uses: cypress-io/github-action@v6
with:
browser: chrome
wait-on: 'http://localhost:3000'
wait-on: "http://localhost:3000"
wait-on-timeout: 60
record: false
config-file: cypress.config.js
working-directory: frontend
env:
IDIR_TEST_USER: ${{ secrets.ADMIN_IDIR_USERNAME }}
IDIR_TEST_PASS: ${{ secrets.ADMIN_IDIR_PASSWORD }}
BCEID_TEST_USER: ${{ secrets.BCEID_TEST_USER }}
BCEID_TEST_PASS: ${{ secrets.BCEID_TEST_PASS }}
ADMIN_IDIR_USERNAME: ${{ secrets.ADMIN_IDIR_USERNAME }}
ADMIN_IDIR_PASSWORD: ${{ secrets.ADMIN_IDIR_PASSWORD }}
ADMIN_IDIR_EMAIL: ${{ secrets.ADMIN_IDIR_EMAIL }}
ORG1_BCEID_USERNAME: ${{ secrets.ORG1_BCEID_USERNAME }}
ORG1_BCEID_PASSWORD: ${{ secrets.ORG1_BCEID_PASSWORD }}
ORG2_BCEID_USERNAME: ${{ secrets.ORG2_BCEID_USERNAME }}
ORG2_BCEID_PASSWORD: ${{ secrets.ORG2_BCEID_PASSWORD }}
CYPRESS_IDIR_TEST_USER: ${{ secrets.ADMIN_IDIR_USERNAME }}
CYPRESS_IDIR_TEST_PASS: ${{ secrets.ADMIN_IDIR_PASSWORD }}
CYPRESS_BCEID_TEST_USER: ${{ secrets.BCEID_TEST_USER }}
CYPRESS_BCEID_TEST_PASS: ${{ secrets.BCEID_TEST_PASS }}
CYPRESS_ADMIN_IDIR_USERNAME: ${{ secrets.ADMIN_IDIR_USERNAME }}
CYPRESS_ADMIN_IDIR_PASSWORD: ${{ secrets.ADMIN_IDIR_PASSWORD }}
CYPRESS_ADMIN_IDIR_EMAIL: ${{ secrets.ADMIN_IDIR_EMAIL }}
CYPRESS_ORG1_BCEID_USERNAME: ${{ secrets.ORG1_BCEID_USERNAME }}
CYPRESS_ORG1_BCEID_PASSWORD: ${{ secrets.ORG1_BCEID_PASSWORD }}
CYPRESS_ORG2_BCEID_USERNAME: ${{ secrets.ORG2_BCEID_USERNAME }}
CYPRESS_ORG2_BCEID_PASSWORD: ${{ secrets.ORG2_BCEID_PASSWORD }}

# Print backend logs if something goes wrong
- name: Print backend logs
if: failure()
run: docker logs backend

# Print frontend logs if something goes wrong
- name: Print frontend logs
if: failure()
run: docker logs frontend

- name: Cleanup
if: always()
Expand Down
41 changes: 21 additions & 20 deletions .github/workflows/dev-ci.yml
Original file line number Diff line number Diff line change
@@ -1,28 +1,26 @@
## For each release, the value of workflow name, branches and VERSION need to be adjusted accordingly

name: LCFS 0.2.0 Dev CI
name: LCFS 1.0.0 Dev CI

on:
push:
branches: [ release-0.2.0 ]
branches: [develop]
paths:
- frontend/**
- backend/**
workflow_dispatch:

env:
VERSION: 0.2.0
GIT_URL: https://github.com/bcgov/lcfs.git
VERSION: 1.0.0
GIT_URL: https://github.com/bcgov/lcfs.git
TOOLS_NAMESPACE: ${{ secrets.OPENSHIFT_NAMESPACE_PLATE }}-tools
DEV_NAMESPACE: ${{ secrets.OPENSHIFT_NAMESPACE_PLATE }}-dev


concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
cancel-in-progress: true

jobs:

install-oc:
runs-on: ubuntu-latest
outputs:
Expand All @@ -35,7 +33,7 @@ jobs:
id: cache
uses: actions/[email protected]
with:
path: /usr/local/bin/oc # Path where the `oc` binary will be installed
path: /usr/local/bin/oc # Path where the `oc` binary will be installed
key: oc-cli-${{ runner.os }}

- name: Install OpenShift CLI (if not cached)
Expand All @@ -53,16 +51,15 @@ jobs:
name: Calculate pre-release number
runs-on: ubuntu-latest
needs: [install-oc]

outputs:
output1: ${{ steps.set-pre-release.outputs.PRE_RELEASE }}

steps:
- id: set-pre-release
run: echo "PRE_RELEASE=$(date +'%Y%m%d%H%M%S')" >> $GITHUB_OUTPUT

build:

name: Build LCFS
runs-on: ubuntu-latest
needs: set-pre-release
Expand All @@ -72,7 +69,6 @@ jobs:
PRE_RELEASE: ${{ needs.set-pre-release.outputs.output1 }}

steps:

- name: Check out repository
uses: actions/[email protected]

Expand All @@ -93,21 +89,28 @@ jobs:
- name: Build LCFS Backend
run: |
cd openshift/templates
oc process -f ./backend-bc.yaml VERSION=${{ env.VERSION }}-${{ env.PRE_RELEASE }} GIT_URL=${{ env.GIT_URL }} GIT_REF=release-${{ env.VERSION }} | oc apply --wait=true -f - -n ${{ env.TOOLS_NAMESPACE }}
oc process -f ./backend-bc.yaml VERSION=${{ env.VERSION }}-${{ env.PRE_RELEASE }} GIT_URL=${{ env.GIT_URL }} GIT_REF=develop | oc apply --wait=true -f - -n ${{ env.TOOLS_NAMESPACE }}
sleep 2s
oc -n ${{ env.TOOLS_NAMESPACE }} start-build lcfs-backend-${{ env.VERSION }}-${{ env.PRE_RELEASE }} --wait=true
oc tag ${{ env.TOOLS_NAMESPACE }}/lcfs-backend:${{ env.VERSION }}-${{ env.PRE_RELEASE }} ${{ env.DEV_NAMESPACE }}/lcfs-backend:${{ env.VERSION }}-${{ env.PRE_RELEASE }}
- name: Build LCFS Frontend
run: |
cd openshift/templates
oc process -f ./frontend-bc.yaml VERSION=${{ env.VERSION }}-${{ env.PRE_RELEASE }} GIT_URL=${{ env.GIT_URL }} GIT_REF=release-${{ env.VERSION }} | oc apply --wait=true -f - -n ${{ env.TOOLS_NAMESPACE }}
oc process -f ./frontend-bc.yaml VERSION=${{ env.VERSION }}-${{ env.PRE_RELEASE }} GIT_URL=${{ env.GIT_URL }} GIT_REF=develop | oc apply --wait=true -f - -n ${{ env.TOOLS_NAMESPACE }}
sleep 2s
oc -n ${{ env.TOOLS_NAMESPACE }} start-build lcfs-frontend-${{ env.VERSION }}-${{ env.PRE_RELEASE }} --wait=true
oc tag ${{ env.TOOLS_NAMESPACE }}/lcfs-frontend:${{ env.VERSION }}-${{ env.PRE_RELEASE }} ${{ env.DEV_NAMESPACE }}/lcfs-frontend:${{ env.VERSION }}-${{ env.PRE_RELEASE }}
deploy:
# - name: Tag the source code
# run: |
# git config --global user.email "[email protected]"
# git config --global user.name "GitHub Actions"
# devtag="${{ env.VERSION }}-${{ env.PRE_RELEASE }}"
# git tag $devtag
# git push origin $devtag

deploy:
name: Deploy LCFS
runs-on: ubuntu-latest
timeout-minutes: 60
Expand All @@ -117,23 +120,22 @@ jobs:
PRE_RELEASE: ${{ needs.set-pre-release.outputs.output1 }}

steps:

- name: Checkout Manifest repository
uses: actions/[email protected]
with:
repository: bcgov-c/tenant-gitops-d2bd59
ref: main
ssh-key: ${{ secrets.MANIFEST_REPO_DEPLOY_KEY }}

- name: Update frontend tag
uses: mikefarah/[email protected]
with:
cmd: yq -i '.image.tag = "${{ env.VERSION }}-${{ env.PRE_RELEASE }}"' lcfs/charts/lcfs-frontend/values-dev.yaml
cmd: yq -i '.image.tag = "${{ env.VERSION }}-${{ env.PRE_RELEASE }}"' lcfs/charts/lcfs-frontend/values-dev.yaml

- name: Update backend tag
uses: mikefarah/[email protected]
with:
cmd: yq -i '.image.tag = "${{ env.VERSION }}-${{ env.PRE_RELEASE }}"' lcfs/charts/lcfs-backend/values-dev.yaml
cmd: yq -i '.image.tag = "${{ env.VERSION }}-${{ env.PRE_RELEASE }}"' lcfs/charts/lcfs-backend/values-dev.yaml

- name: GitHub Commit & Push
run: |
Expand All @@ -143,4 +145,3 @@ jobs:
git add lcfs/charts/lcfs-backend/values-dev.yaml
git commit -m "update the image tag to ${{ env.VERSION }}-${{ env.PRE_RELEASE }}"
git push
Loading

0 comments on commit 44a6ed1

Please sign in to comment.