Trigger on a push to this branch #1
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: 'CI: SVC BIP API integration test' | |
on: | |
# Allow manual triggering | |
workflow_dispatch: | |
# Allow being called by another GitHub Action | |
workflow_call: | |
push: | |
branches: [josiah/bip-integration-test] | |
env: | |
COMPOSE_PROFILES: 'svc' | |
VRO_DEV_SECRETS_FOLDER: "${{ github.workspace }}/.cache/abd-vro-dev-secrets" | |
jobs: | |
integration-test: | |
runs-on: ubuntu-latest | |
steps: | |
- name: 'Checkout source code' | |
uses: actions/checkout@v3 | |
- name: "Checkout abd-vro-dev-secrets repo" | |
uses: actions/checkout@v3 | |
with: | |
# Checkout using a PAT so that we can access the internal repo | |
token: ${{ secrets.ACCESS_TOKEN_CHECKOUT_INTERNAL_REPO }} | |
repository: 'department-of-veterans-affairs/abd-vro-dev-secrets' | |
path: "${{ env.VRO_DEV_SECRETS_FOLDER }}" | |
- name: 'Set RABBITMQ_BASIC_AUTH' | |
run: | | |
source scripts/setenv.sh | |
# create basic auth token for RabbitMQ and export to github environment | |
BASIC_AUTH=$(echo "${RABBITMQ_PLACEHOLDERS_USERNAME}:${RABBITMQ_PLACEHOLDERS_USERPASSWORD}" | base64) | |
echo "RABBITMQ_BASIC_AUTH=${BASIC_AUTH}" >> "$GITHUB_ENV" | |
export -p | sed 's/declare -x //' | |
- name: 'Build the images' | |
uses: ./.github/actions/build-images | |
- name: 'Start the containers' | |
run: | | |
source scripts/setenv.sh | |
export -p | sed 's/declare -x //' | |
./gradlew dockerComposeUp | |
./gradlew -p mocks :build | |
./gradlew -p mocks :mock-bip-claims-api:docker | |
./gradlew -p mocks :mock-bip-ce-api:docker | |
./gradlew -p mocks :mock-slack:docker | |
./gradlew -p mocks :mock-lighthouse-api:docker | |
./gradlew -p mocks :mock-bie-kafka:docker | |
./gradlew -p mocks :dockerComposeUp | |
./gradlew :domain-xample:dockerComposeUp | |
./gradlew :app:dockerComposeUp | |
- name: 'Wait for RabbitMQ to be ready' | |
uses: indiesdev/[email protected] | |
with: | |
url: 'http://localhost:15672/api/vhosts' | |
method: 'GET' | |
basic-auth-token: '${{env.RABBITMQ_BASIC_AUTH}}' | |
accept: 200 | |
# Retry every 2 seconds | |
timeout: 2000 | |
# Quit after 60 seconds | |
retries: 30 | |
- name: 'Wait for svc-bip-api to be ready' | |
uses: nev7n/wait_for_response@v1 | |
with: | |
url: 'http://localhost:10301/actuator/health' | |
responseCode: 200 | |
# Retry every 2 seconds | |
interval: 2000 | |
# Quit after 60 seconds | |
timeout: 60000 | |
- name: "Wait for VRO to be ready" | |
uses: nev7n/wait_for_response@v1 | |
with: | |
url: 'http://localhost:8111/actuator/health' | |
responseCode: 200 | |
# Retry every 2 seconds | |
interval: 2000 | |
# Quit after 100 seconds | |
timeout: 100000 | |
- name: "Run the integration test" | |
run: | | |
source scripts/setenv.sh | |
./gradlew :svc-bip-api:integrationTest | |
- name: "Collect docker logs" | |
if: always() | |
uses: jwalton/gh-docker-logs@v2 | |
with: | |
dest: './svc-bip-api-container-logs' | |
- name: "Upload artifact" | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: svc-bip-api-container-logs | |
path: ./svc-bip-api-container-logs/** | |
retention-days: 14 | |
- name: "Check for errors in container logs" | |
run: | | |
if docker logs vro_svc-bip-api_1 | grep 'ERROR'; then | |
echo "Unexpected ERROR logs in svc-bip-api container" | |
exit 11 | |
fi | |
if docker logs vro_svc-bip-api_1 | grep 'ERROR\|WARN' | grep -v 'Simulated error'; then | |
echo "Unexpected ERROR logs in svc-bip-api container" | |
exit 12 | |
fi | |
- name: 'Clean shutdown of all containers' | |
if: always() | |
shell: bash | |
run: | | |
docker ps | |
COMPOSE_PROFILES="all" ./gradlew dockerComposeDown |