diff --git a/.github/workflows/build-ui-and-server.yml b/.github/workflows/build-ui-and-server.yml deleted file mode 100644 index 44df41f..0000000 --- a/.github/workflows/build-ui-and-server.yml +++ /dev/null @@ -1,236 +0,0 @@ -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-extensions/shape-builder' - runs-on: ubuntu-24.04 - steps: - - name: Check out code - uses: actions/checkout@v4 - with: - fetch-depth: 1 - - uses: actions/setup-node@v4 - with: - node-version: "20.x" - 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-extensions/shape-builder' - runs-on: ubuntu-24.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/kind-action@v1.10.0 - 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: "20.x" - 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-extensions/shape-builder' - runs-on: ubuntu-24.04 - steps: - - name: Check out code - uses: actions/checkout@v4 - with: - fetch-depth: 1 - - name: Free disk space - run: | - sudo rm -rf /usr/share/dotnet - sudo rm -rf /usr/local/lib/android - sudo rm -rf /opt/ghc - sudo rm -rf /opt/hostedtoolcache - - 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-extensions/shape-builder' - name: swagger-docs - runs-on: ubuntu-24.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-extensions/shape-builder' - runs-on: ubuntu-24.04 - 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 diff --git a/.github/workflows/build-ui-server-reusable-workflow.yml b/.github/workflows/build-ui-server-reusable-workflow.yml deleted file mode 100644 index b083887..0000000 --- a/.github/workflows/build-ui-server-reusable-workflow.yml +++ /dev/null @@ -1,54 +0,0 @@ -name: Re-usable Workflow - Build UI and Server -on: - workflow_call: - secrets: {} - -jobs: - build-backend: - name: Backend build - runs-on: ubuntu-24.04 - steps: - - name: Check out code - uses: actions/checkout@v4 - with: - repository: meshery/meshery - fetch-depth: 1 - - name: Setup Go - uses: actions/setup-go@v5 - with: - go-version: "1.23" - - run: | - GOPROXY=https://proxy.golang.org,direct GOSUMDB=off GO111MODULE=on go build -tags draft ./server/cmd/main.go ./server/cmd/error.go - - name: Upload artifacts - uses: actions/upload-artifact@v4 - with: - name: meshery - path: ./main - ui-build: - name: UI build - runs-on: ubuntu-24.04 - steps: - - name: Check out code - uses: actions/checkout@v4 - with: - repository: meshery/meshery - fetch-depth: 1 - - uses: actions/setup-node@v4 - with: - node-version: "20.x" - check-latest: true - cache: "npm" - cache-dependency-path: "**/package-lock.json" - - name: Install dependencies - run: | - make ui-build - - name: upload meshery-ui artifact - uses: actions/upload-artifact@v4 - with: - name: meshery-ui-build - path: ui/out/ - - name: upload Meshery-provider-ui artifacts - uses: actions/upload-artifact@v4 - with: - name: meshery-provider-ui build - path: provider-ui/out/ diff --git a/.github/workflows/kanvas.yml b/.github/workflows/kanvas.yml index 99e5237..a0e1b91 100644 --- a/.github/workflows/kanvas.yml +++ b/.github/workflows/kanvas.yml @@ -1,4 +1,4 @@ -name: Meshery Snapshot Service +name: Kanvas Snapshot Service on: # rebuild any PRs and main branch changes pull_request_target: types: [opened, synchronize, reopened] @@ -37,10 +37,10 @@ jobs: path: action repository: layer5labs/kanvas-snapshot - id: test_result - uses: layer5labs/Kanvas-Snapshot@v0.2.32 + uses: layer5labs/Kanvas-Snapshot@v0.2.33 with: githubToken: ${{ secrets.GITHUB_TOKEN }} # github's personal access token example: "ghp_...." mesheryToken: ${{ secrets.MESHERY_TOKEN }} # Meshery Cloud Authentication token, signin to meshery-cloud to get one, example: ey..... prNumber: ${{ env.PULL_NO }} # auto-filled from the above step application_type: Kubernetes Manifest # your application type, could be any of three: "Kubernetes Manifest", "Docker Compose", "Helm Chart" - filePath: ${{ inputs.fileName == '' && 'install/deployment_yamls/k8s' || inputs.fileName }} # relative file-path from the root directory in the github-runner env, you might require to checkout the repository as described in step 2 + filePath: ${{ inputs.fileName == '' && 'https://meshery.github.io/meshery.io/charts/meshery-v0.8.57.tgz' || inputs.fileName }} # relative file-path from the root directory in the github-runner env, you might require to checkout the repository as described in step 2 diff --git a/.github/workflows/multi-platform.yml b/.github/workflows/multi-platform.yml deleted file mode 100644 index 57482a1..0000000 --- a/.github/workflows/multi-platform.yml +++ /dev/null @@ -1,124 +0,0 @@ -name: Multi-Platform Build and Release -on: - release: - types: [published] - pull_request: - branches: - - 'master' - push: - tags: - - 'v*' - branches: - - 'master' - paths-ignore: - - 'docs/**' - - '.github/**' - workflow_dispatch: - inputs: - release-ver: - description: 'Stable Release Version' - required: true - default: 'v' - stripped-release-ver: - description: 'Stripped Stable Release Version' - required: true - default: '' - release-channel: - description: 'Release Channel' - required: true - default: 'edge' - -env: - GIT_VERSION: ${{github.event.inputs.release-ver}} - GIT_STRIPPED_VERSION: ${{github.event.inputs.stripped-release-ver}} - RELEASE_CHANNEL: ${{github.event.inputs.release-channel}} - GIT_TAG: ${{ github.event.release.tag_name }} - -jobs: - print-inputs: - if: github.repository == 'meshery-extensions/shape-builder' - runs-on: ubuntu-24.04 - steps: - - - run: | - echo "Dispatched GIT_VERSION: ${{github.event.inputs.release-ver}}" - echo "Dispatched GIT_STRIPPED_VERSION: ${{github.event.inputs.stripped-release-ver}}" - echo "Env RELEASE_CHANNEL: ${{env.RELEASE_CHANNEL}}" - echo "Env GIT_VERSION: ${{env.GIT_VERSION}}" - echo "Env GIT_STRIPPED_VERSION: ${{env.GIT_STRIPPED_VERSION}}" - echo "Env GIT_TAG: ${{ github.event.release.tag_name }}" - echo "Env GITHUB_REF: $GITHUB_REF" - echo "Env GITHUB_REF:" ${GITHUB_REF} - - docker-build: - if: github.repository == 'meshery-extensions/shape-builder' - runs-on: ubuntu-24.04 - steps: - - - name: Checkout repo - uses: actions/checkout@v4.1.7 - - - name: Identify Release Values - if: "${{ github.event.inputs.release-ver}} != 'v' }}" - run: | - if [[ ${GITHUB_REF} = refs/tags* ]] - then - echo RELEASE_CHANNEL=stable >> $GITHUB_ENV - else - echo RELEASE_CHANNEL=edge >> $GITHUB_ENV - fi - LATEST_VERSION=$(git ls-remote --tags | tail -1 | cut -f2 | sed 's/refs\/tags\///g') >> $GITHUB_ENV - GIT_VERSION=$(git ls-remote --tags | tail -1 | cut -f2 | sed 's/refs\/tags\///g') >> $GITHUB_ENV - # GIT_VERSION=$(git describe --tags `git rev-list --tags --max-count=1` --always) - GIT_STRIPPED_VERSION=$(git ls-remote --tags | tail -1 | cut -f2 | sed 's/refs\/tags\///g' | cut -c2-) - echo "Release channel determined to be $RELEASE_CHANNEL" - echo "GIT_LATEST=$LATEST_VERSION" >> $GITHUB_ENV - echo "GIT_VERSION=$GIT_VERSION" >> $GITHUB_ENV - echo "GIT_STRIPPED_VERSION=$GIT_STRIPPED_VERSION" >> $GITHUB_ENV - shell: bash - - - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Docker Meta - id: meta - uses: docker/metadata-action@v5 - with: - images: ${{ secrets.IMAGE_NAME }} - flavor: | - latest=false - tags: | - type=raw,value=${{env.RELEASE_CHANNEL}}-{{sha}} - type=semver,pattern={{version}},value=${{env.GIT_STRIPPED_VERSION}} - type=raw,value=${{env.RELEASE_CHANNEL}}-{{tag}},enable=${{ startsWith(github.ref, 'refs/tags/v') }} - type=raw,value=${{env.RELEASE_CHANNEL}}-latest - - - name: Login to DockerHub - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - name: Build and Push - uses: docker/build-push-action@v6 - with: - context: install/docker/. - push: true - build-args: | - GIT_STRIPPED_VERSION=${{env.GIT_STRIPPED_VERSION}} - GIT_VERSION=${{env.GIT_VERSION}} - RELEASE_CHANNEL=${{env.RELEASE_CHANNEL}} - tags: ${{ steps.meta.outputs.tags }} - platforms: linux/amd64,linux/arm64 -# - -# name: Docker Hub Description -# uses: peter-evans/dockerhub-description@v3 -# with: -# username: ${{ secrets.DOCKER_USERNAME }} -# password: ${{ secrets.DOCKER_PASSWORD }} -# repository: ${{ secrets.IMAGE_NAME }} -# readme-filepath: README.md