generated from hackforla/.github-hackforla-base-repo-template
-
-
Notifications
You must be signed in to change notification settings - Fork 21
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add initial e2e workflow with an API healthcheck and required mods to…
… the dockerfiles.
- Loading branch information
1 parent
d81ae1b
commit 20cea1e
Showing
5 changed files
with
163 additions
and
10 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,117 @@ | ||
name: E2E Tests | ||
|
||
on: | ||
push: | ||
pull_request: | ||
workflow_dispatch: | ||
jobs: | ||
build-api: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: docker/setup-buildx-action@v3 | ||
- name: Log in to GitHub Container Registry | ||
uses: docker/login-action@v3 | ||
with: | ||
registry: ghcr.io | ||
username: ${{ github.actor }} | ||
password: ${{ secrets.GITHUB_TOKEN }} | ||
- name: Build and Push API Image | ||
run: | | ||
IMAGE_NAME=ghcr.io/hackforla/homeuniteus/api:latest | ||
docker build -t $IMAGE_NAME ./api | ||
docker push $IMAGE_NAME | ||
build-app: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: docker/setup-buildx-action@v3 | ||
- name: Log in to GitHub Container Registry | ||
uses: docker/login-action@v3 | ||
with: | ||
registry: ghcr.io | ||
username: ${{ github.actor }} | ||
password: ${{ secrets.GITHUB_TOKEN }} | ||
- name: Build and Push Testing Image | ||
run: | | ||
IMAGE_NAME=ghcr.io/hackforla/homeuniteus/app:latest-test | ||
docker build --build-arg VITE_HUU_API_BASE_URL=http://127.0.0.1:8080/api --target development --tag $IMAGE_NAME ./app | ||
docker push $IMAGE_NAME | ||
- name: Build Production Image | ||
run: | | ||
IMAGE_NAME=ghcr.io/hackforla/homeuniteus/app:latest | ||
docker build --build-arg VITE_HUU_API_BASE_URL=http://127.0.0.1:8080/api --target production --tag $IMAGE_NAME ./app | ||
docker push $IMAGE_NAME | ||
test-api-mock: | ||
runs-on: ubuntu-latest | ||
needs: [build-api] | ||
steps: | ||
- name: Log in to GitHub Container Registry | ||
uses: docker/login-action@v3 | ||
with: | ||
registry: ghcr.io | ||
username: ${{ github.actor }} | ||
password: ${{ secrets.GITHUB_TOKEN }} | ||
- name: Run Tests With 3rd Party Service Mocking | ||
run: docker run --rm --no-healthcheck ghcr.io/hackforla/homeuniteus/api:latest pytest | ||
test-api-nomock: | ||
runs-on: ubuntu-latest | ||
needs: [build-api] | ||
env: | ||
COGNITO_REGION: ${{ secrets.COGNITO_REGION }} | ||
COGNITO_ACCESS_ID: ${{ secrets.COGNITO_ACCESS_ID }} | ||
COGNITO_ACCESS_KEY: ${{ secrets.COGNITO_ACCESS_KEY }} | ||
steps: | ||
- name: Log in to GitHub Container Registry | ||
uses: docker/login-action@v3 | ||
with: | ||
registry: ghcr.io | ||
username: ${{ github.actor }} | ||
password: ${{ secrets.GITHUB_TOKEN }} | ||
- name: Run Tests Without Mocking | ||
run: | | ||
docker run --rm -e COGNITO_REGION -e COGNITO_ACCESS_ID -e COGNITO_ACCESS_KEY ghcr.io/hackforla/homeuniteus/api:latest "pytest --mode=release" | ||
test-app-mock: | ||
runs-on: ubuntu-latest | ||
needs: [build-app, build-api] | ||
services: | ||
frontend: | ||
image: ghcr.io/hackforla/homeuniteus/app:latest-test | ||
env: | ||
VITE_HUU_API_BASE_URL: http://127.0.0.1:8080/api | ||
container: | ||
image: ghcr.io/hackforla/homeuniteus/app:latest-test | ||
options: --entrypoint /bin/bash --no-healthcheck | ||
env: | ||
CYPRESS_BASE_URL: http://frontend:4040 | ||
CYPRESS_USE_MOCK: true | ||
steps: | ||
- name: Run Tests With Backend Mocking | ||
run: | | ||
cd /app | ||
npx cypress run | ||
test-app-nomock: | ||
runs-on: ubuntu-latest | ||
needs: [build-app, build-api] | ||
services: | ||
backend: | ||
image: ghcr.io/hackforla/homeuniteus/api:latest | ||
env: | ||
ENV: development | ||
HOST: 0.0.0.0 | ||
frontend: | ||
image: ghcr.io/hackforla/homeuniteus/app:latest-test | ||
env: | ||
VITE_HUU_API_BASE_URL: http://backend:8080/api | ||
container: | ||
image: ghcr.io/hackforla/homeuniteus/app:latest-test | ||
options: --entrypoint /bin/bash --no-healthcheck | ||
env: | ||
CYPRESS_BASE_URL: http://frontend:4040 | ||
CYPRESS_USE_MOCK: false | ||
CYPRESS_REAL_EMAIL: [email protected] | ||
CYPRESS_REAL_PASSWORD: Test!123 | ||
steps: | ||
- name: Test using a real backend | ||
run: npx cypress run | ||
working-directory: /app |
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
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
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
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