Skip to content

Merge pull request #2954 from Apicurio/dependabot/npm_and_yarn/ui/ui-… #734

Merge pull request #2954 from Apicurio/dependabot/npm_and_yarn/ui/ui-…

Merge pull request #2954 from Apicurio/dependabot/npm_and_yarn/ui/ui-… #734

name: Integration Tests Workflow
on:
workflow_dispatch: {}
push:
paths-ignore:
- '.gitignore'
- 'LICENSE'
- 'README*'
- 'docs/**'
- '.github/workflows/**'
branches: [main]
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-ui-tests:
name: Prepare for UI Integration Tests
runs-on: ubuntu-22.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-ui:
name: Integration Tests UI
runs-on: ubuntu-20.04
needs: [prepare-ui-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 Registry API (In Memory)"
docker run -it -p 8080:8080 --env apicurio.rest.deletion.artifact-version.enabled=true --env apicurio.rest.mutability.artifact-version-content.enabled=true -d quay.io/apicurio/apicurio-registry:latest-snapshot
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/registry/v3/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/registry/v3/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