From a67a64ba06de995159f04ce5e6254295eb305205 Mon Sep 17 00:00:00 2001 From: sakthi-aot Date: Tue, 19 Mar 2024 10:37:12 -0600 Subject: [PATCH] update files --- .github/workflows/caseflow_core.yml | 67 ----------- .github/workflows/caseflow_gateway.yml | 66 ----------- .github/workflows/caseflow_gateway_os.yml | 85 +++++++++++++ .github/workflows/caseflow_lob.yml | 71 ----------- .github/workflows/caseflow_lob_os.yml | 85 +++++++++++++ .github/workflows/caseflow_microservice.yml | 66 ----------- .github/workflows/caseflow_server_os.yml | 85 +++++++++++++ .github/workflows/caseflow_web.yml | 79 ------------- .github/workflows/caseflow_web_os.yml | 97 +++++++++++++++ .github/workflows/ci-cd-caseflow-dev.yml | 125 -------------------- 10 files changed, 352 insertions(+), 474 deletions(-) delete mode 100644 .github/workflows/caseflow_core.yml delete mode 100644 .github/workflows/caseflow_gateway.yml create mode 100644 .github/workflows/caseflow_gateway_os.yml delete mode 100644 .github/workflows/caseflow_lob.yml create mode 100644 .github/workflows/caseflow_lob_os.yml delete mode 100644 .github/workflows/caseflow_microservice.yml create mode 100644 .github/workflows/caseflow_server_os.yml delete mode 100644 .github/workflows/caseflow_web.yml create mode 100644 .github/workflows/caseflow_web_os.yml delete mode 100644 .github/workflows/ci-cd-caseflow-dev.yml diff --git a/.github/workflows/caseflow_core.yml b/.github/workflows/caseflow_core.yml deleted file mode 100644 index f22a53f19..000000000 --- a/.github/workflows/caseflow_core.yml +++ /dev/null @@ -1,67 +0,0 @@ -name: Caseflow Core -on: - workflow_dispatch: - inputs: - ecr: - required: true - version: - required: true - reponame: - required: true - default: caseflow_web -jobs: - build: - name: Build Image - runs-on: ubuntu-latest - - steps: - - - name: Check out code - uses: actions/checkout@v2 - - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ca-central-1 - - - name: Login to Amazon ECR - id: login-ecr - uses: aws-actions/amazon-ecr-login@v1 - - - name: Build and push - uses: docker/build-push-action@v2 - with: - context: ./app/caseflow_core/microservices/server - push: true - tags: ${{ github.event.inputs.ecr }}/${{ github.event.inputs.reponame }}:${{ github.event.inputs.version }} - - - - name: Download ECS Task Definition JSON file from S3 - run: | - aws s3 cp s3://caseflow-secrets/caseflow_core-revision16.json ./ecs-task-definition/caseflow_core-revision16.json \ - --region ca-central-1 - - shell: /usr/bin/bash -e {0} - env: - AWS_DEFAULT_REGION: ca-central-1 - AWS_REGION: ca-central-1 - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - - - name: Fill in the new image ID in the Amazon ECS task definition - id: task-def - uses: aws-actions/amazon-ecs-render-task-definition@v1 - with: - task-definition: ./ecs-task-definition/caseflow_core-revision16.json - container-name: caseflow-core - image: ${{ github.event.inputs.ecr }}/${{ github.event.inputs.reponame }}:${{ github.event.inputs.version }} - - - name: Deploy Amazon ECS Task Definition - uses: aws-actions/amazon-ecs-deploy-task-definition@v1 - with: - task-definition: ${{ steps.task-def.outputs.task-definition }} - service: caseflow-core - cluster: caseflow-microservices - wait-for-service-stability: true \ No newline at end of file diff --git a/.github/workflows/caseflow_gateway.yml b/.github/workflows/caseflow_gateway.yml deleted file mode 100644 index e99394636..000000000 --- a/.github/workflows/caseflow_gateway.yml +++ /dev/null @@ -1,66 +0,0 @@ -name: Caseflow Gateway -on: - workflow_dispatch: - inputs: - ecr: - required: true - version: - required: true - reponame: - required: true - default: caseflow_gateway -jobs: - build: - name: Build Image - runs-on: ubuntu-latest - - steps: - - - name: Check out code - uses: actions/checkout@v2 - - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ca-central-1 - - - name: Login to Amazon ECR - id: login-ecr - uses: aws-actions/amazon-ecr-login@v1 - - - name: Build and push - uses: docker/build-push-action@v2 - with: - context: ./app/caseflow_core/microservices/gateway - push: true - tags: ${{ github.event.inputs.ecr }}/${{ github.event.inputs.reponame }}:${{ github.event.inputs.version }} - - - name: Download ECS Task Definition JSON file from S3 - run: | - aws s3 cp s3://caseflow-secrets/caseflow-gateway-revision5.json ./ecs-task-definition/caseflow-gateway-revision5.json \ - --region ca-central-1 - - shell: /usr/bin/bash -e {0} - env: - AWS_DEFAULT_REGION: ca-central-1 - AWS_REGION: ca-central-1 - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - - - name: Fill in the new image ID in the Amazon ECS task definition - id: task-def - uses: aws-actions/amazon-ecs-render-task-definition@v1 - with: - task-definition: ./ecs-task-definition/caseflow-gateway-revision5.json - container-name: caseflow-gateway - image: ${{ github.event.inputs.ecr }}/${{ github.event.inputs.reponame }}:${{ github.event.inputs.version }} - - - name: Deploy Amazon ECS Task Definition - uses: aws-actions/amazon-ecs-deploy-task-definition@v1 - with: - task-definition: ${{ steps.task-def.outputs.task-definition }} - service: caseflow-gateway - cluster: caseflow-microservices - wait-for-service-stability: true \ No newline at end of file diff --git a/.github/workflows/caseflow_gateway_os.yml b/.github/workflows/caseflow_gateway_os.yml new file mode 100644 index 000000000..8d242c6a9 --- /dev/null +++ b/.github/workflows/caseflow_gateway_os.yml @@ -0,0 +1,85 @@ +name: caseflow gateway openshift build + +on: + workflow_dispatch: + inputs: + START_BUILD: + required: true + type: boolean + description: This value is ignored, just to trigger dispatch. + environment: + description: "Environment" + required: true + type: environment + push: + branches: + - dev + - master + + # paths: + # #- 'app/**' + # # - 'frontend/**' + # # - 'forms-flow-ai/**' + # # - '.github/workflows/**' + +defaults: + run: + shell: bash + working-directory: ./app/caseflow_core/microservices/gateway +env: + APP_NAME: "caseflow-gateway" + +jobs: + caseflow-gateway-push: + runs-on: ubuntu-20.04 + environment: ${{ inputs.environment }} + + # if: github.repository == 'github.com/aot-technologies/case-flow-ai-case-management' + steps: + - uses: actions/checkout@v2 + - name: Set ENV variables + id: set-variable + # make sure to update the TOOLS_NAME once all the environment for forms-flow-ai-web is ready + run: | + if [ '${{ github.ref_name }}' == 'master' ]; then + echo "For ${{ github.ref_name }} branch" + echo "TOOLS_NAME=${{secrets.OC_NAMESPACE_NAMEPLATE}}" >> $GITHUB_ENV + echo "TAG_NAME="dev"" >> $GITHUB_ENV + echo "BRANCH_NAME="master"" >> $GITHUB_ENV + echo "ENV_NAME="dev"" >> $GITHUB_ENV + elif [ '${{ github.ref_name }}' == 'main' ]; then + echo "For ${{ github.ref_name }} branch" + echo "TOOLS_NAME=${{secrets.OC_NAMESPACE_NAMEPLATE}}" >> $GITHUB_ENV + echo "TAG_NAME="test"" >> $GITHUB_ENV + echo "BRANCH_NAME="main"" >> $GITHUB_ENV + echo "ENV_NAME="test"" >> $GITHUB_ENV + else + echo "For ${{ github.ref_name }} branch, defaulting to dev values" + echo "TOOLS_NAME=${{secrets.OC_NAMESPACE_NAMEPLATE}}" >> $GITHUB_ENV + echo "TAG_NAME="dev"" >> $GITHUB_ENV + echo "BRANCH_NAME="dev"" >> $GITHUB_ENV + echo "ENV_NAME="tools"" >> $GITHUB_ENV + fi + shell: bash + + - name: Login Openshift + shell: bash + run: | + oc login --server=${{secrets.OC_SERVER}} --token=${{secrets.OC_TOKEN}} + - name: Tools project + shell: bash + run: | + oc project ${{ secrets.OC_NAMESPACE_NAMEPLATE }}-tools + # Build from either dev or main branch as appropriate + - name: Build from ${{ github.ref_name }} branch + shell: bash + run: | + oc patch bc/${{ env.APP_NAME }}-build -p '{"spec":{"source":{"git":{"ref":"${{ github.ref_name }}"}}}}' + - name: Start Build Openshift + shell: bash + run: | + oc start-build ${{ env.APP_NAME }}-build --wait + - name: Tag+Deploy for ${{ inputs.environment }} + shell: bash + run: | + oc tag ${{ env.APP_NAME }}-build:latest ${{ env.APP_NAME }}:${{ inputs.environment }} \ No newline at end of file diff --git a/.github/workflows/caseflow_lob.yml b/.github/workflows/caseflow_lob.yml deleted file mode 100644 index 924a21647..000000000 --- a/.github/workflows/caseflow_lob.yml +++ /dev/null @@ -1,71 +0,0 @@ -name: Caseflow LOB -on: - workflow_dispatch: - inputs: - ecr: - required: true - version: - required: true - reponame: - required: true - default: caseflow_lob -jobs: - build: - name: Build Image - runs-on: ubuntu-latest - - steps: - - - name: Check out code - uses: actions/checkout@v2 - - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ca-central-1 - - - name: Login to Amazon ECR - id: login-ecr - uses: aws-actions/amazon-ecr-login@v1 - - - name: Build and push - uses: docker/build-push-action@v2 - with: - context: ./app/caseflow_core/microservices/lob - push: true - tags: ${{ github.event.inputs.ecr }}/${{ github.event.inputs.reponame }}:${{ github.event.inputs.version }} - - - name: Download ECS Task Definition JSON file from S3 - run: | - aws s3 cp s3://caseflow-secrets/caseflow_lob-revision6.json ./ecs-task-definition/caseflow_lob-revision6.json \ - --region ca-central-1 - - shell: /usr/bin/bash -e {0} - env: - AWS_DEFAULT_REGION: ca-central-1 - AWS_REGION: ca-central-1 - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - - - name: Fill in the new image ID in the Amazon ECS task definition - id: task-def - uses: aws-actions/amazon-ecs-render-task-definition@v1 - with: - task-definition: ./ecs-task-definition/caseflow_lob-revision6.json - container-name: caseflow_lob - image: ${{ github.event.inputs.ecr }}/${{ github.event.inputs.reponame }}:${{ github.event.inputs.version }} - - - name: Deploy Amazon ECS Task Definition - uses: aws-actions/amazon-ecs-deploy-task-definition@v1 - with: - task-definition: ${{ steps.task-def.outputs.task-definition }} - service: caseflow_lob - cluster: caseflow-microservices - wait-for-service-stability: true - - - - - \ No newline at end of file diff --git a/.github/workflows/caseflow_lob_os.yml b/.github/workflows/caseflow_lob_os.yml new file mode 100644 index 000000000..97392fb45 --- /dev/null +++ b/.github/workflows/caseflow_lob_os.yml @@ -0,0 +1,85 @@ +name: caseflow lob openshift build + +on: + workflow_dispatch: + inputs: + START_BUILD: + required: true + type: boolean + description: This value is ignored, just to trigger dispatch. + environment: + description: "Environment" + required: true + type: environment + push: + branches: + - dev + - master + + # paths: + # #- 'app/**' + # # - 'frontend/**' + # # - 'forms-flow-ai/**' + # # - '.github/workflows/**' + +defaults: + run: + shell: bash + working-directory: ./app/caseflow_core/microservices/lob +env: + APP_NAME: "caseflow-lob" + +jobs: + caseflow-lob-push: + runs-on: ubuntu-20.04 + environment: ${{ inputs.environment }} + + # if: github.repository == 'github.com/aot-technologies/case-flow-ai-case-management' + steps: + - uses: actions/checkout@v2 + - name: Set ENV variables + id: set-variable + # make sure to update the TOOLS_NAME once all the environment for forms-flow-ai-web is ready + run: | + if [ '${{ github.ref_name }}' == 'master' ]; then + echo "For ${{ github.ref_name }} branch" + echo "TOOLS_NAME=${{secrets.OC_NAMESPACE_NAMEPLATE}}" >> $GITHUB_ENV + echo "TAG_NAME="dev"" >> $GITHUB_ENV + echo "BRANCH_NAME="master"" >> $GITHUB_ENV + echo "ENV_NAME="dev"" >> $GITHUB_ENV + elif [ '${{ github.ref_name }}' == 'main' ]; then + echo "For ${{ github.ref_name }} branch" + echo "TOOLS_NAME=${{secrets.OC_NAMESPACE_NAMEPLATE}}" >> $GITHUB_ENV + echo "TAG_NAME="test"" >> $GITHUB_ENV + echo "BRANCH_NAME="main"" >> $GITHUB_ENV + echo "ENV_NAME="test"" >> $GITHUB_ENV + else + echo "For ${{ github.ref_name }} branch, defaulting to dev values" + echo "TOOLS_NAME=${{secrets.OC_NAMESPACE_NAMEPLATE}}" >> $GITHUB_ENV + echo "TAG_NAME="dev"" >> $GITHUB_ENV + echo "BRANCH_NAME="dev"" >> $GITHUB_ENV + echo "ENV_NAME="tools"" >> $GITHUB_ENV + fi + shell: bash + + - name: Login Openshift + shell: bash + run: | + oc login --server=${{secrets.OC_SERVER}} --token=${{secrets.OC_TOKEN}} + - name: Tools project + shell: bash + run: | + oc project ${{ secrets.OC_NAMESPACE_NAMEPLATE }}-tools + # Build from either dev or main branch as appropriate + - name: Build from ${{ github.ref_name }} branch + shell: bash + run: | + oc patch bc/${{ env.APP_NAME }}-build -p '{"spec":{"source":{"git":{"ref":"${{ github.ref_name }}"}}}}' + - name: Start Build Openshift + shell: bash + run: | + oc start-build ${{ env.APP_NAME }}-build --wait + - name: Tag+Deploy for ${{ inputs.environment }} + shell: bash + run: | + oc tag ${{ env.APP_NAME }}-build:latest ${{ env.APP_NAME }}:${{ inputs.environment }} \ No newline at end of file diff --git a/.github/workflows/caseflow_microservice.yml b/.github/workflows/caseflow_microservice.yml deleted file mode 100644 index bf307be37..000000000 --- a/.github/workflows/caseflow_microservice.yml +++ /dev/null @@ -1,66 +0,0 @@ -name: Caseflow DMS -on: - workflow_dispatch: - inputs: - ecr: - required: true - version: - required: true - reponame: - required: true - default: caseflow_microservice -jobs: - build: - name: Build Image - runs-on: ubuntu-latest - - steps: - - - name: Check out code - uses: actions/checkout@v2 - - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ca-central-1 - - - name: Login to Amazon ECR - id: login-ecr - uses: aws-actions/amazon-ecr-login@v1 - - - name: Build and push - uses: docker/build-push-action@v2 - with: - context: ./app/caseflow_core/microservices/dms - push: true - tags: ${{ github.event.inputs.ecr }}/${{ github.event.inputs.reponame }}:${{ github.event.inputs.version }} - - - name: Download ECS Task Definition JSON file from S3 - run: | - aws s3 cp s3://caseflow-secrets/caseflow_dms-revision3.json ./ecs-task-definition/caseflow_dms-revision3.json \ - --region ca-central-1 - - shell: /usr/bin/bash -e {0} - env: - AWS_DEFAULT_REGION: ca-central-1 - AWS_REGION: ca-central-1 - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - - - name: Fill in the new image ID in the Amazon ECS task definition - id: task-def - uses: aws-actions/amazon-ecs-render-task-definition@v1 - with: - task-definition: ./ecs-task-definition/caseflow_dms-revision3.json - container-name: caseflow-microservice - image: ${{ github.event.inputs.ecr }}/${{ github.event.inputs.reponame }}:${{ github.event.inputs.version }} - - - name: Deploy Amazon ECS Task Definition - uses: aws-actions/amazon-ecs-deploy-task-definition@v1 - with: - task-definition: ${{ steps.task-def.outputs.task-definition }} - service: caseflow-dms - cluster: caseflow-microservices - wait-for-service-stability: true \ No newline at end of file diff --git a/.github/workflows/caseflow_server_os.yml b/.github/workflows/caseflow_server_os.yml new file mode 100644 index 000000000..2016b38fb --- /dev/null +++ b/.github/workflows/caseflow_server_os.yml @@ -0,0 +1,85 @@ +name: caseflow server openshift build + +on: + workflow_dispatch: + inputs: + START_BUILD: + required: true + type: boolean + description: This value is ignored, just to trigger dispatch. + environment: + description: "Environment" + required: true + type: environment + push: + branches: + - dev + - master + + # paths: + # #- 'app/**' + # # - 'frontend/**' + # # - 'forms-flow-ai/**' + # # - '.github/workflows/**' + +defaults: + run: + shell: bash + working-directory: ./app/caseflow_core/microservices/server +env: + APP_NAME: "caseflow-server" + +jobs: + caseflow-server-push: + runs-on: ubuntu-20.04 + environment: ${{ inputs.environment }} + + # if: github.repository == 'github.com/aot-technologies/case-flow-ai-case-management' + steps: + - uses: actions/checkout@v2 + - name: Set ENV variables + id: set-variable + # make sure to update the TOOLS_NAME once all the environment for forms-flow-ai-web is ready + run: | + if [ '${{ github.ref_name }}' == 'master' ]; then + echo "For ${{ github.ref_name }} branch" + echo "TOOLS_NAME=${{secrets.OC_NAMESPACE_NAMEPLATE}}" >> $GITHUB_ENV + echo "TAG_NAME="dev"" >> $GITHUB_ENV + echo "BRANCH_NAME="master"" >> $GITHUB_ENV + echo "ENV_NAME="dev"" >> $GITHUB_ENV + elif [ '${{ github.ref_name }}' == 'main' ]; then + echo "For ${{ github.ref_name }} branch" + echo "TOOLS_NAME=${{secrets.OC_NAMESPACE_NAMEPLATE}}" >> $GITHUB_ENV + echo "TAG_NAME="test"" >> $GITHUB_ENV + echo "BRANCH_NAME="main"" >> $GITHUB_ENV + echo "ENV_NAME="test"" >> $GITHUB_ENV + else + echo "For ${{ github.ref_name }} branch, defaulting to dev values" + echo "TOOLS_NAME=${{secrets.OC_NAMESPACE_NAMEPLATE}}" >> $GITHUB_ENV + echo "TAG_NAME="dev"" >> $GITHUB_ENV + echo "BRANCH_NAME="dev"" >> $GITHUB_ENV + echo "ENV_NAME="tools"" >> $GITHUB_ENV + fi + shell: bash + + - name: Login Openshift + shell: bash + run: | + oc login --server=${{secrets.OC_SERVER}} --token=${{secrets.OC_TOKEN}} + - name: Tools project + shell: bash + run: | + oc project ${{ secrets.OC_NAMESPACE_NAMEPLATE }}-tools + # Build from either dev or main branch as appropriate + - name: Build from ${{ github.ref_name }} branch + shell: bash + run: | + oc patch bc/${{ env.APP_NAME }}-build -p '{"spec":{"source":{"git":{"ref":"${{ github.ref_name }}"}}}}' + - name: Start Build Openshift + shell: bash + run: | + oc start-build ${{ env.APP_NAME }}-build --wait + - name: Tag+Deploy for ${{ inputs.environment }} + shell: bash + run: | + oc tag ${{ env.APP_NAME }}-build:latest ${{ env.APP_NAME }}:${{ inputs.environment }} \ No newline at end of file diff --git a/.github/workflows/caseflow_web.yml b/.github/workflows/caseflow_web.yml deleted file mode 100644 index 4342b418e..000000000 --- a/.github/workflows/caseflow_web.yml +++ /dev/null @@ -1,79 +0,0 @@ -name: Caseflow Web -on: - workflow_dispatch: - inputs: - ecr: - required: true - version: - required: true - reponame: - required: true -jobs: - build: - name: Build Image - runs-on: ubuntu-latest - strategy: - matrix: - node-version: [14.x] - - steps: - - - name: Check out code - uses: actions/checkout@v2 - - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - cache: 'npm' - cache-dependency-path: "./app/caseflow_web/package-lock.json" - - run: npm install --force - working-directory: ./app/caseflow_web - - run: CI=false npm run build - working-directory: ./app/caseflow_web - - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ca-central-1 - - - name: Login to Amazon ECR - id: login-ecr - uses: aws-actions/amazon-ecr-login@v1 - - - name: Build and push - uses: docker/build-push-action@v2 - with: - context: ./app/caseflow_web - push: true - tags: ${{ github.event.inputs.ecr }}/${{ github.event.inputs.reponame }}:${{ github.event.inputs.version }} - - - name: Download ECS Task Definition JSON file from S3 - run: | - aws s3 cp s3://caseflow-secrets/caseflow_web-revision148.json ./ecs-task-definition/caseflow_web-revision148.json \ - --region ca-central-1 - - shell: /usr/bin/bash -e {0} - env: - AWS_DEFAULT_REGION: ca-central-1 - AWS_REGION: ca-central-1 - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - - - name: Fill in the new image ID in the Amazon ECS task definition - id: task-def - uses: aws-actions/amazon-ecs-render-task-definition@v1 - with: - task-definition: ./ecs-task-definition/caseflow_web-revision148.json - container-name: caseflow_web - image: ${{ github.event.inputs.ecr }}/${{ github.event.inputs.reponame }}:${{ github.event.inputs.version }} - - - name: Deploy Amazon ECS task definition - uses: aws-actions/amazon-ecs-deploy-task-definition@v1 - with: - task-definition: ${{ steps.task-def.outputs.task-definition }} - service: caseflow_web - cluster: caseflow - wait-for-service-stability: true diff --git a/.github/workflows/caseflow_web_os.yml b/.github/workflows/caseflow_web_os.yml new file mode 100644 index 000000000..d0c5abe0a --- /dev/null +++ b/.github/workflows/caseflow_web_os.yml @@ -0,0 +1,97 @@ +name: caseflow web openshift build + +on: + workflow_dispatch: + inputs: + START_BUILD: + required: true + type: boolean + description: This value is ignored, just to trigger dispatch. + environment: + description: "Environment" + required: true + type: environment + push: + branches: + - dev + - master + + # paths: + # #- 'app/**' + # # - 'frontend/**' + # # - 'forms-flow-ai/**' + # # - '.github/workflows/**' + +defaults: + run: + shell: bash + working-directory: ./app/caseflow_web +env: + APP_NAME: "caseflow-web" + +jobs: + caseflow-web-push: + runs-on: ubuntu-20.04 + environment: ${{ inputs.environment }} + + # if: github.repository == 'github.com/aot-technologies/case-flow-ai-case-management' + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + cache: 'npm' + cache-dependency-path: "./app/caseflow_web/package-lock.json" + - run: npm install --force + working-directory: ./app/caseflow_web + - run: CI=false npm run build + working-directory: ./app/caseflow_web + + + - name: Set ENV variables + id: set-variable + # make sure to update the TOOLS_NAME once all the environment for forms-flow-ai-web is ready + run: | + if [ '${{ github.ref_name }}' == 'master' ]; then + echo "For ${{ github.ref_name }} branch" + echo "TOOLS_NAME=${{secrets.OC_NAMESPACE_NAMEPLATE}}" >> $GITHUB_ENV + echo "TAG_NAME="dev"" >> $GITHUB_ENV + echo "BRANCH_NAME="master"" >> $GITHUB_ENV + echo "ENV_NAME="dev"" >> $GITHUB_ENV + elif [ '${{ github.ref_name }}' == 'main' ]; then + echo "For ${{ github.ref_name }} branch" + echo "TOOLS_NAME=${{secrets.OC_NAMESPACE_NAMEPLATE}}" >> $GITHUB_ENV + echo "TAG_NAME="test"" >> $GITHUB_ENV + echo "BRANCH_NAME="main"" >> $GITHUB_ENV + echo "ENV_NAME="test"" >> $GITHUB_ENV + else + echo "For ${{ github.ref_name }} branch, defaulting to dev values" + echo "TOOLS_NAME=${{secrets.OC_NAMESPACE_NAMEPLATE}}" >> $GITHUB_ENV + echo "TAG_NAME="dev"" >> $GITHUB_ENV + echo "BRANCH_NAME="dev"" >> $GITHUB_ENV + echo "ENV_NAME="tools"" >> $GITHUB_ENV + fi + shell: bash + + - name: Login Openshift + shell: bash + run: | + oc login --server=${{secrets.OC_SERVER}} --token=${{secrets.OC_TOKEN}} + - name: Tools project + shell: bash + run: | + oc project ${{ secrets.OC_NAMESPACE_NAMEPLATE }}-tools + # Build from either dev or main branch as appropriate + - name: Build from ${{ github.ref_name }} branch + shell: bash + run: | + oc patch bc/${{ env.APP_NAME }}-build -p '{"spec":{"source":{"git":{"ref":"${{ github.ref_name }}"}}}}' + - name: Start Build Openshift + shell: bash + run: | + oc start-build ${{ env.APP_NAME }}-build --wait + - name: Tag+Deploy for ${{ inputs.environment }} + shell: bash + run: | + oc tag ${{ env.APP_NAME }}:latest ${{ env.APP_NAME }}:${{ inputs.environment }} \ No newline at end of file diff --git a/.github/workflows/ci-cd-caseflow-dev.yml b/.github/workflows/ci-cd-caseflow-dev.yml deleted file mode 100644 index 05e875bb5..000000000 --- a/.github/workflows/ci-cd-caseflow-dev.yml +++ /dev/null @@ -1,125 +0,0 @@ -name: Continuous Integration And Deployment On Push to DEV - -on: - workflow_dispatch: # TODO this is there for testing purposes, once the pipelines are all done, remove this - push: - branches: - - 'master' - - 'caseflow-ci-cd' #sakthi - - paths: - - 'app/**' - - 'app/caseflow_core/**' - - 'app/caseflow_web/**' - - '.github/workflows/ci-cd-openshift-dev.yml' - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - builds: - name: Builds Microservices - uses: ./.github/workflows/_build.yml - strategy: - matrix: - component: [app/caseflow_core/microservices/dms, app/caseflow_core/microservices/gateway, app/caseflow_core/microservices/lob, app/caseflow_core/microservices/server] - include: - - component: app/caseflow_core/microservices/dms - triggers: ('app/caseflow_core/microservices/dms/') - - component: app/caseflow_core/microservices/gateway - triggers: ('app/caseflow_core/microservices/gateway/') - - component: app/caseflow_core/microservices/lob - triggers: ('app/caseflow_core/microservices/lob/') - - component: app/caseflow_core/microservices/server - triggers: ('app/caseflow_core/microservices/server/') - # - component: app/caseflow_web - # triggers: ('app/caseflow_web/') - secrets: - gh_token: ${{ secrets.GITHUB_TOKEN }} - with: - component: ${{ matrix.component }} - img_build: "dev" # ask the team dev or latest - img_fallback: dev - triggers: ${{ matrix.triggers }} - - builds_web: - name: Builds Web - uses: ./.github/workflows/build_web.yml - strategy: - matrix: - component: [app/caseflow_web] - include: - - component: app/caseflow_web - triggers: ('app/caseflow_web/') - secrets: - gh_token: ${{ secrets.GITHUB_TOKEN }} - with: - component: ${{ matrix.component }} - img_build: "dev" # ask the team dev or latest - img_fallback: dev - triggers: ${{ matrix.triggers }} - - - # # TODO - REIMPLMENET BEFORE MERGING, JUST TESTING WITHOUT THESE TO VERIFY DEPLOYS - # tests: - # name: Unit Tests - # uses: ./.github/workflows/_code-cov.yml - # strategy: - # matrix: - # component: [app/caseflow_core/microservices/dms, app/caseflow_core/microservices/gateway, app/caseflow_core/microservices/lob, app/caseflow_core/microservices/server, app/caseflow_web] - # secrets: - # gh_token: ${{ secrets.GITHUB_TOKEN }} - # with: - # component: ${{ matrix.component }} - # lcov_file: ${{ matrix.component }}/coverage/lcov.info - # test_cmd: npm run test:cov - - deploys: - name: Deploys - needs: - - builds - # If any of the previous created a build, then deploy - # TODO - RE-ENABLE IF COMMAND BELOW, DISABLED DURING EXPERIMENTAL DEV - if: contains(needs.*.outputs.build, 'true') - uses: ./.github/workflows/_deploy.yml - strategy: - matrix: - component: [app/caseflow_core/microservices/dms, app/caseflow_core/microservices/gateway, app/caseflow_core/microservices/lob, app/caseflow_core/microservices/server, app/caseflow_web] - include: - # - component: database - # overwrite: false - # template_file: .github/openshift/deploy.database.yml - # template_vars: -p DB_PVC_SIZE=200Mi - - component: app/caseflow_web - overwrite: true - template_file: .github/openshift/deploy.caseflow-web.yml - template_vars: -p PROMOTE=${{ github.repository }}/app/caseflow_web -p CONTAINER_PORT=8080 -p ENV=dev -p IMAGE_TAG=dev - - component: app/caseflow_core/microservices/dms - overwrite: true - template_file: .github/openshift/deploy.microservice-dms.yml - template_vars: -p PROMOTE=${{ github.repository }}/app/caseflow_core/microservices/dms -p CONTAINER_PORT=7002 -p ENV=dev -p IMAGE_TAG=dev - - component: app/caseflow_core/microservices/gateway - overwrite: true - template_file: .github/openshift/deploy.microservice-gateway.yml - template_vars: -p PROMOTE=${{ github.repository }}/app/caseflow_core/microservices/gateway -p CONTAINER_PORT=7000 -p ENV=dev -p IMAGE_TAG=dev - - component: app/caseflow_core/microservices/lob - overwrite: true - template_file: .github/openshift/deploy.microservice-lob.yml - template_vars: -p PROMOTE=${{ github.repository }}/app/caseflow_core/microservices/lob -p CONTAINER_PORT=8000 -p ENV=dev -p IMAGE_TAG=dev - - component: app/caseflow_core/microservices/server - overwrite: true - template_file: .github/openshift/deploy.microservice-server.yml - template_vars: -p PROMOTE=${{ github.repository }}/app/caseflow_core/microservices/server -p CONTAINER_PORT=7001 -p ENV=dev -p IMAGE_TAG=dev - - - secrets: - oc_namespace: ${{ secrets.OC_NAMESPACE }} - oc_server: ${{ secrets.OC_SERVER }} - oc_token: ${{ secrets.OC_TOKEN }} - with: - environment: dev - component: ${{ matrix.component }} - overwrite: ${{ matrix.overwrite }} - template_file: ${{ matrix.template_file }} - template_vars: ${{ matrix.template_vars }} \ No newline at end of file