Skip to content

Bump the ui-app-dependencies group across 1 directory with 10 updates #212

Bump the ui-app-dependencies group across 1 directory with 10 updates

Bump the ui-app-dependencies group across 1 directory with 10 updates #212

name: Integration Tests Workflow
on:
workflow_dispatch: {}
push:
paths-ignore:
- '.gitignore'
- 'LICENSE'
- 'README*'
- 'docs/**'
- '.github/workflows/**'
branches: [main, '[1-9].[1-9].x']
pull_request:
paths-ignore:
- '.gitignore'
- 'LICENSE'
- 'README*'
- 'docs/**'
branches: [main]
concurrency:
# Only run once for latest commit per ref and cancel other (previous) runs.
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
prepare-integration-tests:
name: Prepare for Integration Tests
runs-on: ubuntu-20.04
if: github.repository_owner == 'Apicurio' && !contains(github.event.*.labels.*.name, 'DO NOT MERGE')
steps:
- name: Show Actor
run: echo ${{github.actor}}
- name: Checkout Code
uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
cache: 'maven'
- name: Build Application
run: mvn clean install --no-transfer-progress -DskipTests=true -Dmaven.javadoc.skip=true -Dmaven.wagon.httpconnectionManager.maxTotal=30 -Dmaven.wagon.http.retryHandler.count=5
- name: Build and Push Application image
run: |
docker build --push -f ./dist/docker/target/docker/Dockerfile.jvm -t ttl.sh/${{ github.sha }}/apicurio/apicurio-studio:1d ./dist/docker/target/docker
prepare-ui-tests:
name: Prepare for UI Integration Tests
runs-on: ubuntu-20.04
if: github.repository_owner == 'Apicurio' && !contains(github.event.*.labels.*.name, 'DO NOT MERGE')
steps:
- name: Show Actor
run: echo ${{github.actor}}
- name: Checkout Code
uses: actions/checkout@v3
- name: Set up Node
uses: actions/setup-node@v3
with:
node-version: 20
cache: 'npm'
cache-dependency-path: 'ui/**/package-lock.json'
- name: Install UI Dependencies
run: |
cd ui
npm install
- name: Lint UI Code
run: |
cd ui
npm run lint
- name: Build and Package UI
run: |
cd ui
npm run build
npm run package
- name: Build and Push UI image
env:
IMAGE_REPO: ttl.sh/${{ github.sha }}
# maximum allowed
IMAGE_TAG: 1d
run: |
cd ui
docker build -t $IMAGE_REPO/apicurio/apicurio-studio-ui:$IMAGE_TAG .
docker push $IMAGE_REPO/apicurio/apicurio-studio-ui:$IMAGE_TAG
integration-tests-h2:
name: Integration Tests H2
runs-on: ubuntu-20.04
needs: prepare-integration-tests
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
cache: 'maven'
- name: Run Integration tests
run: |
echo "Starting Studio App (In Memory)"
docker run -it -p 8080:8080 -d ttl.sh/${{ github.sha }}/apicurio/apicurio-studio:1d
mvn verify --no-transfer-progress -Pintegration-tests -Pci -Dquarkus.http.test-host=127.0.0.1 -Dquarkus.http.test-port=8080 -pl integration-tests -Dmaven.javadoc.skip=true
- name: Collect logs
if: failure()
run: ./.github/scripts/collect_logs.sh
- name: Upload tests logs artifacts
if: failure()
uses: actions/[email protected]
with:
name: tests-logs-h2
path: artifacts
# integration-tests-postgresql:
# name: Integration Tests Postgresql
# runs-on: ubuntu-20.04
# needs: prepare-integration-tests
# steps:
# - name: Checkout Code
# uses: actions/checkout@v3
# - name: Set up JDK 17
# uses: actions/setup-java@v3
# with:
# java-version: '17'
# distribution: 'temurin'
# cache: 'maven'
# - name: Setup Minikube
# uses: manusa/[email protected]
# with:
# minikube version: 'v1.31.1'
# kubernetes version: 'v1.26.3'
# github token: ${{ secrets.GITHUB_TOKEN }}
# driver: docker
# - name: Prepare minikube tunnel
# run: minikube tunnel &> /dev/null &
# - name: Run Integration Tests - Postgresql
# run: ./mvnw -T 1.5C verify -am --no-transfer-progress -Pintegration-tests -Pci -Dstudio-sql-image=ttl.sh/${{ github.sha }}/apicurio/apicurio-studio:1d -Premote-sql -pl integration-tests -Dmaven.javadoc.skip=true
# - name: Collect logs
# if: failure()
# run: ./.github/scripts/collect_logs.sh
# - name: Upload tests logs artifacts
# if: failure()
# uses: actions/[email protected]
# with:
# name: tests-logs-postgresql
# path: artifacts
integration-tests-ui:
name: Integration Tests UI
runs-on: ubuntu-20.04
needs: [prepare-ui-tests, prepare-integration-tests]
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Set up Node
uses: actions/setup-node@v3
with:
node-version: 20
cache: 'npm'
cache-dependency-path: 'ui/tests/package-lock.json'
- name: Run UI tests
run: |
echo "Starting Studio App (In Memory)"
docker run -it -p 8080:8080 -d ttl.sh/${{ github.sha }}/apicurio/apicurio-studio:1d
echo "Starting Studio UI"
docker run -it -p 8888:8080 -d ttl.sh/${{ github.sha }}/apicurio/apicurio-studio-ui:1d
cd ui/tests
npm install
npx playwright install --with-deps
echo "App System Info:"
echo "--"
curl -s http://localhost:8080/apis/studio/v1/system/info
echo "--"
echo ""
echo "UI Config Info (Local):"
echo "--"
curl -s http://localhost:8888/config.js
echo "--"
echo ""
echo "UI Config Info (Remote):"
echo "--"
curl -s http://localhost:8080/apis/studio/v1/system/uiConfig
echo "--"
echo ""
echo "UI Version Info:"
curl -s http://localhost:8888/version.js
echo "--"
echo "UI index.html:"
echo "--"
curl -s http://localhost:8888
echo "--"
echo ""
echo "-------------------------"
echo "Running Playwright tests!"
echo "-------------------------"
npm run test
- name: Upload Test Report
uses: actions/upload-artifact@v3
if: always()
with:
name: playwright-report
path: ui/tests/playwright-report/
retention-days: 30
- name: Collect logs
if: failure()
run: ./.github/scripts/collect_logs.sh
- name: Upload tests logs artifacts
if: failure()
uses: actions/upload-artifact@v3
with:
name: tests-logs-ui
path: artifacts