Bump next from 13.5.6 to 15.1.3 in /provider-ui #1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Meshery UI and Server | |
on: | |
pull_request_target: | |
types: [opened, synchronize, reopened] | |
branches: | |
- "master" | |
paths-ignore: | |
- "docs/**" | |
- "mesheryctl/**" | |
- "*.md" | |
- "*.github/**" | |
workflow_dispatch: | |
inputs: | |
logLevel: | |
description: "Log level" | |
required: true | |
default: "warning" | |
permissions: read-all | |
jobs: | |
ui-build: | |
name: UI build | |
if: github.repository == 'meshery/meshery' | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 1 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
cache: 'npm' | |
cache-dependency-path: '**/package-lock.json' | |
- name: Build meshery-ui and provider-ui | |
run: | | |
make ui-build | |
- name: Upload meshery-ui artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: meshery-ui | |
retention-days: 30 | |
path: /home/runner/work/meshery/meshery/ui/out | |
- name: Upload provider-ui artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: provider-ui | |
retention-days: 30 | |
path: /home/runner/work/meshery/meshery/provider-ui/out | |
tests-ui-e2e: | |
needs: [ui-build] | |
name: UI end-to-end tests | |
environment: staging-playground | |
if: github.repository == 'meshery/meshery' | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 45 | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Check out meshery-istio code | |
uses: actions/checkout@v4 | |
with: | |
repository: layer5io/meshery-istio | |
path: ./meshery-istio | |
# - name: Check out meshery-consul code | |
# uses: actions/checkout@v4 | |
# with: | |
# repository: layer5io/meshery-consul | |
# path: ./meshery-consul | |
- name: Create k8s Kind Cluster | |
uses: helm/[email protected] | |
with: | |
cluster_name: "kind-cluster" | |
- name: Setup Go | |
uses: actions/setup-go@master | |
with: | |
go-version: "1.23" | |
- name: Run meshery-istio | |
run: | | |
mkdir -p /home/runner/.meshery/bin | |
cd ./meshery-istio | |
go run main.go & | |
sleep 60 | |
# - name: Run meshery-consul | |
# run: | | |
# mkdir -p /home/runner/.meshery/bin | |
# cd ./meshery-consul | |
# go run main.go & | |
# sleep 60 | |
- name: Setup node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
cache: 'npm' | |
cache-dependency-path: '**/package-lock.json' | |
- name: Download meshery-ui artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
name: meshery-ui | |
path: /home/runner/work/meshery/meshery/ui/out | |
- name: Download provider-ui artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
name: provider-ui | |
path: /home/runner/work/meshery/meshery/provider-ui/out | |
- name: Run Meshery UI and Server | |
run: | | |
make server & | |
sleep 90 | |
- name: Install Playwright | |
run: make ui-setup-ci | |
- name: Install Playwright Browsers | |
run: make test-setup-ui | |
- name: Run Playwright End-to-End Tests | |
env: | |
MESHERY_SERVER_URL: "http://localhost:9081" | |
REMOTE_PROVIDER_URL: "https://cloud.layer5.io" | |
REMOTE_PROVIDER_USER_EMAIL: ${{ secrets.REMOTE_PROVIDER_USER_EMAIL }} | |
REMOTE_PROVIDER_USER_PASSWORD: ${{ secrets.REMOTE_PROVIDER_USER_PASS }} | |
PROVIDER_TOKEN: ${{ secrets.PROVIDER_TOKEN }} | |
GITHUB_TOKEN: ${{ secrets.GH_ACCESS_TOKEN }} | |
run: make test-e2e-ci | |
- name: Save PR number | |
if: ${{ !cancelled() }} | |
run: | | |
mkdir -p ./pr | |
echo ${{ github.event.number }} > ./pr/number | |
- name: Upload Test Report | |
if: ${{ !cancelled() }} | |
uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6 | |
with: | |
name: e2e-test-reporter | |
path: | | |
ui/test-report.md | |
pr/number | |
retention-days: 14 | |
- name: Upload Test Trace | |
if: ${{ !cancelled() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: playwright-report | |
path: ui/test-results/ | |
retention-days: 14 | |
docker-build-test: | |
name: Docker build | |
if: github.repository == 'meshery/meshery' | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 1 | |
- name: Docker edge build & tag | |
if: startsWith(github.ref, 'refs/tags/') != true && success() | |
env: | |
RELEASE_CHANNEL: "edge" | |
run: | | |
DOCKER_BUILDKIT=1 docker build -f install/docker/Dockerfile --no-cache -t meshery:edge-latest --build-arg TOKEN=test --build-arg GIT_COMMITSHA=${GITHUB_SHA::8} --build-arg RELEASE_CHANNEL=${RELEASE_CHANNEL} . | |
docker tag meshery:edge-latest meshery:edge-${GITHUB_SHA::8} | |
- name: Docker edge push | |
if: github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') && success() | |
run: | | |
docker push ${{ secrets.IMAGE_NAME }}:edge-latest | |
docker push ${{ secrets.IMAGE_NAME }}:edge-${GITHUB_REF/refs\/tags\//} | |
docker push ${{ secrets.IMAGE_NAME }}:edge-${GITHUB_SHA::8} | |
- name: Docker Hub Description | |
if: github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') && success() | |
uses: peter-evans/dockerhub-description@v4 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_PASSWORD }} | |
repository: ${{ secrets.IMAGE_NAME }} | |
# validate the swagger docs | |
swaggerci: | |
if: github.repository == 'meshery/meshery' | |
name: swagger-docs | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Check if handlers were modified | |
uses: dorny/paths-filter@v3 | |
id: changes | |
with: | |
filters: | | |
modified: | |
- added|modified: "handlers/**" | |
- name: Setup go-swagger | |
if: steps.changes.outputs.modified == 'true' | |
uses: minchao/setup-go-swagger@v1 | |
with: | |
version: v0.26.1 | |
- name: swagger-spec | |
if: steps.changes.outputs.modified == 'true' | |
run: swagger generate spec -o ./server/helpers/swagger.yaml --scan-models | |
- name: swagger-docs | |
if: steps.changes.outputs.modified == 'true' | |
run: swagger generate spec -o ./docs/_data/swagger.yml --scan-models && swagger flatten ./docs/_data/swagger.yml -o ./docs/_data/swagger.yml --with-expand --format=yaml | |
# validate graphQL schema | |
garphql_validate: | |
name: Validate GraphQL schema | |
if: github.repository == 'meshery/meshery' | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 1 | |
- name: Check if schema was modified | |
uses: dorny/paths-filter@v3 | |
id: filter | |
with: | |
filters: | | |
modified: | |
- added|modified: 'server/internal/graphql/schema/schema.graphql' | |
- name: Set up Ruby | |
if: steps.filter.outputs.modified == 'true' | |
uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: 3.2.6 | |
bundler-cache: true | |
- name: graphql-docs | |
if: steps.filter.outputs.modified == 'true' | |
run: | | |
cd docs | |
bundle install | |
bundle exec rake graphql:compile_docs |