diff --git a/.github/workflows/caseflow_core.yml b/.github/workflows/caseflow_core.yml new file mode 100644 index 000000000..42c19c6b0 --- /dev/null +++ b/.github/workflows/caseflow_core.yml @@ -0,0 +1,38 @@ +name: Caseflow Core CD - AWS +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 }} diff --git a/.github/workflows/caseflow_gateway_aws.yml b/.github/workflows/caseflow_gateway_aws.yml new file mode 100644 index 000000000..3e55166ea --- /dev/null +++ b/.github/workflows/caseflow_gateway_aws.yml @@ -0,0 +1,38 @@ +name: Caseflow Gateway - CD AWS +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 }} diff --git a/.github/workflows/caseflow_lob.yml b/.github/workflows/caseflow_lob.yml new file mode 100644 index 000000000..734f49f8d --- /dev/null +++ b/.github/workflows/caseflow_lob.yml @@ -0,0 +1,38 @@ +name: Caseflow LOB CD - AWS +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 }} diff --git a/.github/workflows/caseflow_microservice.yml b/.github/workflows/caseflow_microservice.yml new file mode 100644 index 000000000..4b063f925 --- /dev/null +++ b/.github/workflows/caseflow_microservice.yml @@ -0,0 +1,38 @@ +name: Caseflow DMS CD - AWS +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 }} diff --git a/.github/workflows/caseflow_web.yml b/.github/workflows/caseflow_web.yml new file mode 100644 index 000000000..d64561fb3 --- /dev/null +++ b/.github/workflows/caseflow_web.yml @@ -0,0 +1,67 @@ +name: Caseflow Web CD - AWS +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: 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: caseflow_web.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