Gitops Update #2
Workflow file for this run
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: gitops_update | |
on: | |
workflow_dispatch: | |
env: | |
REGISTRY: ghcr.io | |
REPOSITORY_OWNER: wkspower | |
WEBSOCKET_ENABLED: true | |
TOPIC_CASE_CREATE: case-create | |
TOPIC_CREATE_HUMAN_TASK: human-task-create | |
NOVU_ENABLED: true | |
KEYCLOAK_URL_LOCAL: http://login.wkspower.local | |
WKS_API_URL_LOCAL: http://api.wkspower.local | |
WKS_STORAGE_API_URL_LOCAL: http://api.wkspower.local/storage | |
WEBSOCKET_URL_LOCAL: ws://ws.wkspower.local | |
NOVU_PUBLISHER_API_URL_LOCAL: http://novu.wkspower.local | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
packages: write | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up jdk 18 | |
uses: actions/setup-java@v3 | |
with: | |
java-version: "18" | |
distribution: "temurin" | |
- name: Set up maven | |
uses: stCarolas/[email protected] | |
with: | |
maven-version: 3.8.2 | |
- name: Install dependencies for case-portal | |
run: yarn --cwd apps/react/case-portal install | |
- name: Build for case-portal | |
env: | |
NODE_OPTIONS: "--max_old_space_size=4096" | |
run: | | |
export REACT_APP_KEYCLOAK_URL="${{ env.KEYCLOAK_URL_LOCAL }}" | |
export REACT_APP_API_URL="${{ env.WKS_API_URL_LOCAL }}" | |
export REACT_APP_STORAGE_URL="${{ env.WKS_STORAGE_API_URL_LOCAL }}" | |
export REACT_APP_WEBSOCKETS_ENABLED="${{ env.WEBSOCKET_ENABLED }}" | |
export REACT_APP_WEBSOCKETS_URL="${{ env.WEBSOCKET_URL_LOCAL }}" | |
export REACT_APP_WEBSOCKETS_CASE_CREATED="${{ env.TOPIC_CASE_CREATE }}" | |
export REACT_APP_WEBSOCKETS_HUMAN_TASK_CREATED="${{ env.TOPIC_CREATE_HUMAN_TASK }}" | |
export REACT_APP_NOVU_ENABLED="${{ env.NOVU_ENABLED }}" | |
export REACT_APP_NOVU_PUBLISHER_API_URL="${{ env.NOVU_PUBLISHER_API_URL_LOCAL }}" | |
yarn --cwd apps/react/case-portal build | |
- name: Extract tag name | |
id: extract_tag | |
run: echo "::set-output name=tag::$(echo ${GITHUB_REF#refs/tags/})" | |
- name: Log in to the Container registry | |
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 | |
with: | |
registry: ${{ env.REGISTRY }} | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Build and push Docker image for case-portal | |
uses: docker/build-push-action@v2 | |
with: | |
context: ./apps/react/case-portal | |
platforms: linux/amd64,linux/arm64 | |
file: apps/react/case-portal/deployments/Dockerfile | |
push: true | |
tags: "${{ env.REGISTRY }}/${{ env.REPOSITORY_OWNER }}/case-portal-local:${{ steps.extract_tag.outputs.tag }}" | |
deploy: | |
runs-on: ubuntu-latest | |
needs: [build] | |
permissions: | |
contents: read | |
packages: write | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
repository: wkspower/wks-gitops | |
path: wks-gitops | |
token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Extract tag name | |
id: extract_tag | |
run: echo "::set-output name=tag::$(echo ${GITHUB_REF#refs/tags/})" | |
- uses: supplypike/setup-bin@v3 | |
with: | |
uri: 'https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize%2Fv5.0.0/kustomize_v5.0.0_linux_amd64.tar.gz' | |
name: 'kustomize' | |
version: '5.0.0' | |
- name: Update kubernetes resources with new tag to Local Environment | |
run: | | |
cd wks-gitops/apps | |
cd opa/local | |
kustomize edit set image ${{ env.REGISTRY }}/${{ env.REPOSITORY_OWNER }}/opa=${{ env.REGISTRY }}/${{ env.REPOSITORY_OWNER }}/opa:${{ steps.extract_tag.outputs.tag }} | |
cd ../../ | |
cd case-engine-rest-api/local | |
kustomize edit set image ${{ env.REGISTRY }}/${{ env.REPOSITORY_OWNER }}/case-engine-rest-api=${{ env.REGISTRY }}/${{ env.REPOSITORY_OWNER }}/case-engine-rest-api:${{ steps.extract_tag.outputs.tag }} | |
cd ../../ | |
cd demo-data-loader/local | |
kustomize edit set image ${{ env.REGISTRY }}/${{ env.REPOSITORY_OWNER }}/demo-data-loader=${{ env.REGISTRY }}/${{ env.REPOSITORY_OWNER }}/demo-data-loader:${{ steps.extract_tag.outputs.tag }} | |
cd ../../ | |
cd c7-external-tasks/local | |
kustomize edit set image ${{ env.REGISTRY }}/${{ env.REPOSITORY_OWNER }}/c7-external-tasks=${{ env.REGISTRY }}/${{ env.REPOSITORY_OWNER }}/c7-external-tasks:${{ steps.extract_tag.outputs.tag }} | |
cd ../../ | |
cd case-portal/local | |
kustomize edit set image ${{ env.REGISTRY }}/${{ env.REPOSITORY_OWNER }}/case-portal-local=${{ env.REGISTRY }}/${{ env.REPOSITORY_OWNER }}/case-portal-local:${{ steps.extract_tag.outputs.tag }} | |
cd ../../ | |
- name: Update kubernetes resources with new tag to Staging Environment | |
run: | | |
cd wks-gitops/apps | |
cd storage-api/staging | |
kustomize edit set image ${{ env.REGISTRY }}/${{ env.REPOSITORY_OWNER }}/storage-api=${{ env.REGISTRY }}/${{ env.REPOSITORY_OWNER }}/storage-api:${{ steps.extract_tag.outputs.tag }} | |
cd ../../ | |
cd opa/staging | |
kustomize edit set image ${{ env.REGISTRY }}/${{ env.REPOSITORY_OWNER }}/opa=${{ env.REGISTRY }}/${{ env.REPOSITORY_OWNER }}/opa:${{ steps.extract_tag.outputs.tag }} | |
cd ../../ | |
cd case-engine-rest-api/staging | |
kustomize edit set image ${{ env.REGISTRY }}/${{ env.REPOSITORY_OWNER }}/case-engine-rest-api=${{ env.REGISTRY }}/${{ env.REPOSITORY_OWNER }}/case-engine-rest-api:${{ steps.extract_tag.outputs.tag }} | |
cd ../../ | |
cd demo-data-loader/staging | |
kustomize edit set image ${{ env.REGISTRY }}/${{ env.REPOSITORY_OWNER }}/demo-data-loader=${{ env.REGISTRY }}/${{ env.REPOSITORY_OWNER }}/demo-data-loader:${{ steps.extract_tag.outputs.tag }} | |
cd ../../ | |
cd c7-external-tasks/staging | |
kustomize edit set image ${{ env.REGISTRY }}/${{ env.REPOSITORY_OWNER }}/c7-external-tasks=${{ env.REGISTRY }}/${{ env.REPOSITORY_OWNER }}/c7-external-tasks:${{ steps.extract_tag.outputs.tag }} | |
cd ../../ | |
cd case-portal-client/staging | |
kustomize edit set image ${{ env.REGISTRY }}/${{ env.REPOSITORY_OWNER }}/case-portal-local=${{ env.REGISTRY }}/${{ env.REPOSITORY_OWNER }}/case-portal-local:${{ steps.extract_tag.outputs.tag }} | |
cd ../../ | |
- name: New tag release for continuous delivery | |
run: | | |
cd wks-gitops | |
git config --local user.email "[email protected]" | |
git config --local user.name "GitHub Action" | |
git commit -am "Release docker tag" | |
git push |