Skip to content

CPDNPQ-1216 Update list of independent schools offering govt.-funded EY provision #1222

CPDNPQ-1216 Update list of independent schools offering govt.-funded EY provision

CPDNPQ-1216 Update list of independent schools offering govt.-funded EY provision #1222

name: Create Review App
on:
pull_request:
branches: [ main ]
types: [ opened, synchronize, reopened ]
paths-ignore:
- 'documentation/**'
jobs:
deploy:
name: Deploy to Review App
if: ${{ github.actor != 'dependabot[bot]' }}
runs-on: ubuntu-20.04
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Install CloudFoundry CLI
shell: bash
run: |
wget -q -O - https://packages.cloudfoundry.org/debian/cli.cloudfoundry.org.key | sudo apt-key add -
echo "deb https://packages.cloudfoundry.org/debian stable main" | sudo tee /etc/apt/sources.list.d/cloudfoundry-cli.list
sudo apt-get update
sudo apt-get install cf7-cli
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_DEV_PASSWORD }}
- name: Build and push docker image
uses: docker/build-push-action@v3
id: docker_build_push
with:
context: .
build-args: |
BUILDKIT_INLINE_CACHE=1
GIT_COMMIT_SHA=${{ github.sha }}
push: true
tags: dfedigital/early-careers-framework-dev:npq-registration-review-app-${{ github.event.number }}
provenance: false
- name: Deploy to Gov.uk PaaS
id: deploy-to-paas
shell: bash
env:
CF_DOCKER_PASSWORD: ${{ secrets.DOCKER_DEV_PASSWORD }}
PAAS_ORGANISATION: dfe
# This is a shared PAAS space
PAAS_SPACE: earlycareers-framework-dev
ENV_STUB: review-app-${{ github.event.number }}
ENV_STUB_DB: review-app-db
APP_NAME: npq-registration
REMOTE_DOCKER_IMAGE_NAME: dfedigital/early-careers-framework-dev
CF_USERNAME: ${{ secrets.GOVPAAS_DEV_USERNAME }}
CF_PASSWORD: ${{ secrets.GOVPAAS_DEV_PASSWORD }}
run: |
cf api https://api.london.cloud.service.gov.uk
cf auth
cf target -o "${{ env.PAAS_ORGANISATION }}" -s "${{ env.PAAS_SPACE }}"
cf push "${{ env.APP_NAME }}"-"${{ env.ENV_STUB }}" \
--manifest ./config/manifests/review-app-manifest.yml \
--var DOCKER_IMAGE_ID="${{ steps.docker_build_push.outputs.digest }}" \
--var SECRET_KEY_BASE="${{ secrets.RAILS_SECRET_KEY_BASE_DEV }}" \
--var GOVUK_NOTIFY_API_KEY="${{ secrets.GOVUK_NOTIFY_API_KEY_DEV }}" \
--var TRA_OIDC_DOMAIN="${{ secrets.TRA_OIDC_DOMAIN_DEV }}" \
--var TRA_OIDC_CLIENT_ID="${{ secrets.TRA_OIDC_CLIENT_ID_DEV }}" \
--var TRA_OIDC_CLIENT_SECRET="${{ secrets.TRA_OIDC_CLIENT_SECRET_DEV }}" \
--var TRA_OIDC_REDIRECT_URI="${{ secrets.TRA_OIDC_REDIRECT_URI_DEV }}" \
--var APP_NAME="${{ env.APP_NAME }}" \
--var ENV_STUB="${{ env.ENV_STUB }}" \
--var ENV_STUB_DB="${{ env.ENV_STUB_DB }}" \
--var ECF_APP_BEARER_TOKEN="${{ secrets.ECF_APP_BEARER_TOKEN_DEV }}" \
--var SENTRY_DSN="${{ secrets.SENTRY_DSN }}" \
--var GET_AN_IDENTITY_WEBHOOK_SECRET="${{ secrets.GET_AN_IDENTITY_WEBHOOK_SECRET_REVIEW_APP }}" \
--docker-image "${{ env.REMOTE_DOCKER_IMAGE_NAME }}":"${{ env.APP_NAME }}"-"${{ env.ENV_STUB }}" \
--docker-username "${{ secrets.DOCKER_USERNAME }}" \
--strategy rolling
cf run-task "${{ env.APP_NAME }}"-"${{ env.ENV_STUB }}" \
--command "cd /app && /usr/local/bundle/bin/bundle exec rails feature_flags:initialize" \
--process worker \
--name initialize-feature-flags
- name: Ensure review app base data is in place
id: seed-db
shell: bash
env:
CF_DOCKER_PASSWORD: ${{ secrets.DOCKER_DEV_PASSWORD }}
PAAS_ORGANISATION: dfe
# This is a shared PAAS space
PAAS_SPACE: earlycareers-framework-dev
ENV_STUB: review-app-${{ github.event.number }}
APP_NAME: npq-registration
CF_USERNAME: ${{ secrets.GOVPAAS_DEV_USERNAME }}
CF_PASSWORD: ${{ secrets.GOVPAAS_DEV_PASSWORD }}
run: |
cf api https://api.london.cloud.service.gov.uk
cf auth
cf target -o "${{ env.PAAS_ORGANISATION }}" -s "${{ env.PAAS_SPACE }}"
cf run-task "${{ env.APP_NAME }}"-"${{ env.ENV_STUB }}" \
--command "cd /app && /usr/local/bundle/bin/bundle exec rails db:seed" \
--process worker \
--name run-db-seed
cf run-task "${{ env.APP_NAME }}"-"${{ env.ENV_STUB }}" \
--command "cd /app && /usr/local/bundle/bin/bundle exec rails runner 'ImportGiasSchoolsJob.perform_later'" \
--process worker \
--name schedule_school_import
cf run-task "${{ env.APP_NAME }}"-"${{ env.ENV_STUB }}" \
--command "cd /app && /usr/local/bundle/bin/bundle exec rails runner 'ApplicationSynchronizationJob.perform_later'" \
--process worker \
--name application_synchronization_job
cf run-task "${{ env.APP_NAME }}"-"${{ env.ENV_STUB }}" \
--command "cd /app && /usr/local/bundle/bin/bundle exec rails \"private_childcare_providers:import[lib/private_childcare_providers/2023-03-31/childcare_providers.csv, childcare_providers]\"" \
--process worker \
--name import_childcare_providers
cf run-task "${{ env.APP_NAME }}"-"${{ env.ENV_STUB }}" \
--command "cd /app && /usr/local/bundle/bin/bundle exec rails \"private_childcare_providers:import[lib/private_childcare_providers/2023-03-31/childminder_agencies.csv, childminder_agencies]\"" \
--process worker \
--name import_childminder_agencies
- name: comment on PR
uses: unsplash/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
msg: "Created review app at https://npq-registration-review-app-${{ github.event.number }}.london.cloudapps.digital"
check_for_duplicate_msg: true
duplicate_msg_pattern: Created review app at*