Skip to content

Migrate to buf schema v2 and move api related tasks to dedicated Makefile for PMM v3 #12944

Migrate to buf schema v2 and move api related tasks to dedicated Makefile for PMM v3

Migrate to buf schema v2 and move api related tasks to dedicated Makefile for PMM v3 #12944

Workflow file for this run

name: 'Client: pmm and pmm-admin'
on:
push:
branches:
- main
- v3
- pmm-*
tags:
- v[0-9]+.[0-9]+.[0-9]+*
pull_request:
paths-ignore:
- "agent/**"
- "api-tests/**"
- "docs/**"
- "managed/**"
- "qan-api2/**"
- "update/**"
- "vmproxy/**"
- "ui/**"
jobs:
test:
name: Tests
runs-on: ubuntu-22.04
defaults:
run:
working-directory: ${{ github.workspace }}/admin
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Set up Go release
uses: actions/setup-go@v5
with:
go-version-file: ${{ github.workspace }}/go.mod
cache: false
- name: Enable Go build cache
uses: actions/cache@v4
with:
path: ~/.cache/go-build
key: ${{ runner.os }}-go-build-${{ github.ref }}-${{ hashFiles('**') }}
restore-keys: |
${{ runner.os }}-go-build-${{ github.ref }}-
${{ runner.os }}-go-build-
- name: Enable Go modules cache
uses: actions/cache@v4
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-modules-${{ hashFiles('**/go.sum') }}
restore-keys: ${{ runner.os }}-go-modules-
- name: Download Go modules
run: go mod download -x
- name: Build and install
run: make install
- name: Run tests
run: make test-cover
- name: Upload coverage results
uses: codecov/codecov-action@v4
with:
file: cover.out
flags: admin
fail_ci_if_error: false
token: ${{ secrets.CODECOV_TOKEN }}
- name: Run debug commands on failure
if: ${{ failure() }}
run: |
env | sort
go env | sort
git status
cli-test:
name: CLI Tests
if: false
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
test-type: [ pmm-common, pmm-server-install, pmm-docker-test ]
defaults:
run:
working-directory: ${{ github.workspace }}/cli-tests
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Set up Go release
uses: actions/setup-go@v5
with:
go-version-file: ${{ github.workspace }}/go.mod
cache: false
- name: Enable Go build cache
uses: actions/cache@v4
with:
path: ~/.cache/go-build
key: ${{ runner.os }}-go-build-${{ github.ref }}-${{ hashFiles('**') }}
restore-keys: |
${{ runner.os }}-go-build-${{ github.ref }}-
${{ runner.os }}-go-build-
- name: Enable Go modules cache
uses: actions/cache@v4
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-modules-${{ hashFiles('**/go.sum') }}
restore-keys: ${{ runner.os }}-go-modules-
- name: Download Go modules
run: go mod download -x
- name: Build and install
run: make -C ../admin install
- name: Setup tools
run: |
sudo ln -sf /home/runner/go/bin/pmm /usr/bin
sudo chown -R runner:docker /usr/bin/pmm
- name: Install Playwright
run: |
npm ci
npx playwright install
- name: Run "pmm" common tests
if: ${{ matrix.test-type == 'pmm-common' }}
run: npx playwright test tests/pmm-cli/pmm.spec.ts
- name: Run "pmm server install" tests
if: ${{ matrix.test-type == 'pmm-server-install' }}
run: npx playwright test tests/pmm-cli/server/install.spec.ts
- name: Run "pmm server upgrade" tests
if: ${{ matrix.test-type == 'pmm-server-update' }}
run: npx playwright test tests/pmm-cli/server/upgrade.spec.ts
- name: Run specific docker tests
if: ${{ matrix.test-type == 'pmm-docker-test' }}
run: npx playwright test tests/pmm-cli/server/docker-specific.spec.ts
- name: Attach the report on failure
if: failure()
uses: actions/upload-artifact@v4
with:
name: "report-${{ matrix.go-version }}-${{ matrix.test-type }}"
path: ${{ github.workspace }}/cli-tests/playwright-report/
- name: Run debug commands on failure
if: ${{ failure() }}
run: |
env | sort
go env | sort
git status
node --version
npx --version
npx playwright --version