Write logs to storage #80
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: E2E tests | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
workflow_dispatch: | |
jobs: | |
newman-tests: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v3 | |
- name: Create env file | |
run: | | |
touch .env | |
echo API_NAME='github-testing-process-api' >> .env | |
echo STORAGE_SERVICE='minio' >> .env | |
echo STORAGE_BUCKET='api-storage' >> .env | |
echo STORAGE_METADATA_DIR='metadata' >> .env | |
echo STORAGE_RESULTS_DIR='results' >> .env | |
echo STORAGE_LOGS_DIR='logs' >> .env | |
echo LOCAL_LOGS_DIR='../.data/logs' >> .env | |
echo MINIO_ACCESS_KEY_ID=user >> .env | |
echo MINIO_SECRET_ACCESS_KEY=password >> .env | |
echo MINIO_S3_ENDPOINT=http://minio:9000 >> .env | |
echo MINIO_S3_REGION='us-east-1' >> .env | |
echo MINIO_S3_DISABLE_SSL=true >> .env | |
echo MINIO_S3_FORCE_PATH_STYLE=true >> .env | |
echo AWS_ACCESS_KEY_ID=${{ secrets.AWS_ACCESS_KEY_ID }} >> .env | |
echo AWS_SECRET_ACCESS_KEY=${{ secrets.AWS_SECRET_ACCESS_KEY }} >> .env | |
echo AWS_REGION=${{ secrets.AWS_DEFAULT_REGION }} >> .env | |
echo BATCH_LOG_STREAM_GROUP='/aws/batch/job' >> .env | |
- name: Build the test images | |
run: | | |
cd plugin-examples | |
chmod +x build.sh | |
./build.sh & | |
- name: Build the docker-compose stack | |
run: docker-compose build | |
- name: Create network | |
run: docker network create process_api_net | |
- name: Run the docker-compose stack | |
run: docker-compose up -d | |
- name: Create bucket | |
run: > | |
docker run | |
--network process_api_net | |
-e MINIO_ROOT_USER=user | |
-e MINIO_ROOT_PASSWORD=password | |
-e STORAGE_BUCKET=api-storage | |
--entrypoint /bin/sh | |
minio/mc:RELEASE.2023-08-18T21-57-55Z | |
-c "mc alias set myminio http://minio:9000 \$MINIO_ROOT_USER \$MINIO_ROOT_PASSWORD && mc mb myminio/\${STORAGE_BUCKET}" | |
- name: Wait for API server to be ready | |
run: | | |
attempts=0 | |
max_attempts=12 # This will wait for 2 minutes (10 seconds * 12) | |
while true; do | |
if curl -s http://localhost:5050; then | |
echo "API server is ready!" | |
break | |
fi | |
attempts=$((attempts+1)) | |
if [ $attempts -eq $max_attempts ]; then | |
echo "Max attempts reached. Exiting..." | |
exit 1 | |
fi | |
echo "Waiting for API server to be ready. Attempt: $attempts" | |
sleep 10 | |
done | |
- name: Run newman tests | |
run: > | |
docker run --network="host" -v /home/runner/work/process-api/process-api/tests/e2e:/etc/newman/ postman/newman:5.3.1-alpine run tests.postman_collection.json | |
--env-var "url=localhost:5050" --reporters cli --bail --color on | |
## Uncomment to print logs for debugging | |
# - name: Display docker-compose logs | |
# run: docker-compose logs | |
# if: always() | |