mirror of
https://github.com/percona/pg_stat_monitor.git
synced 2026-02-04 14:06:20 +00:00
81 lines
2.6 KiB
YAML
81 lines
2.6 KiB
YAML
name: PMM Integration
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches:
|
|
- main
|
|
tags:
|
|
- '[0-9]+.[0-9]+.[0-9]+*'
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
test:
|
|
name: Test
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 30
|
|
continue-on-error: true
|
|
strategy:
|
|
matrix:
|
|
postgresql: [13, 14, 15, 16, 17, 18]
|
|
|
|
steps:
|
|
- name: Clone QA Integration
|
|
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
|
with:
|
|
repository: Percona-Lab/qa-integration
|
|
ref: cleanup
|
|
path: qa-integration
|
|
|
|
- name: Clone PMM UI tests
|
|
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
|
with:
|
|
repository: percona/pmm-ui-tests
|
|
ref: main
|
|
path: pmm-ui-tests
|
|
|
|
- name: Set TARGET_BRANCH variable for a PR run
|
|
if: github.event_name == 'pull_request'
|
|
run: echo "TARGET_BRANCH=${{ github.event.pull_request.base.ref }}" >> $GITHUB_ENV
|
|
|
|
- name: Set TARGET_BRANCH variable for a PUSH run
|
|
if: github.event_name == 'push'
|
|
run: echo "TARGET_BRANCH=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
|
|
|
|
- name: Run PMM Server
|
|
run: docker run --detach --restart always -p 443:8443 -p 8081:8080 --name pmm-server perconalab/pmm-server:3-dev-latest
|
|
|
|
- name: Setup PostgreSQL ${{ matrix.postgresql }} & PGSM
|
|
working-directory: qa-integration/pmm_qa
|
|
run: |
|
|
mkdir -m 777 -p /tmp/backup_data
|
|
python3 -m venv virtenv
|
|
. virtenv/bin/activate
|
|
pip install --upgrade pip
|
|
pip install --force-reinstall -U setuptools
|
|
pip install -r requirements.txt
|
|
python3 pmm-framework.py --database pdpgsql=${{ matrix.postgresql }},PGSM_BRANCH=${{ env.TARGET_BRANCH }}
|
|
|
|
- name: Install npx dependencies
|
|
working-directory: pmm-ui-tests
|
|
run: npm ci && npx playwright install --with-deps && npx codeceptjs def pr.codecept.js
|
|
|
|
- name: Run integration tests
|
|
working-directory: pmm-ui-tests
|
|
run: |
|
|
export PMM_UI_URL="http://127.0.0.1:8081/"
|
|
npx codeceptjs run -c pr.codecept.js tests/qa-integration/pmm_pdpgsql_integration_test.js
|
|
|
|
- name: Collect pmm-agent logs
|
|
if: failure()
|
|
run: docker exec pdpgsql_pmm_${{ matrix.postgresql }}_1 cat /var/log/pmm-agent.log > ./pmm-ui-tests/tests/output/pmm-agent.log
|
|
|
|
- name: Upload artifacts
|
|
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
|
|
if: failure()
|
|
with:
|
|
name: tests-artifact
|
|
path: ./pmm-ui-tests/tests/output/
|
|
if-no-files-found: ignore
|