Skip to content

Integration Tests #2298

Integration Tests

Integration Tests #2298

name: Integration Tests
on:
workflow_dispatch:
push:
schedule:
- cron: '12 0/11 * * *'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
name: Integration Tests
runs-on: ubuntu-latest
steps:
# SETUP BUILD ENVIRONMENT
- id: prepare-maven-build
name: Prepare Maven build
uses: sualeh/prepare-maven-build@v1.4.0
with:
java-version: 21
- id: install-graphviz
name: Install Graphviz
uses: sualeh/install-graphviz@v1.0.3
- id: setup-node
name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20.x'
- id: install-newman
name: Install newman
shell: bash
run: |
# Install newman
npm install -g newman
newman -v
# BUILD AND TEST
- id: build-test
name: Build and run tests
shell: bash
run: |
# Build
mvn \
--no-transfer-progress \
--batch-mode \
package
# RUN INTEGRATION TESTS WITH NEWMAN
- id: run-postman
name: Run Postman tests for API
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET: ${{ secrets.AWS_SECRET }}
AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }}
shell: bash
run: |
# Build
timeout 120s mvn spring-boot:run > application.log 2>&1 &
sleep 15
newman run \
--verbose \
--color on \
--delay-request 1000 \
--working-dir src/test/postman \
--env-var "url=http://localhost:8080" \
src/test/postman/schemacrawler-web-application.postman_collection.json
- id: upload-application-log
name: Upload application log
uses: actions/upload-artifact@v4
if: always()
with:
name: application-log
path: ./application.log
retention-days: 5