Skip to content

Commit

Permalink
Merge pull request #11 from layer5labs/Abhi/test-br
Browse files Browse the repository at this point in the history
MeshMap-Snapshot test and improvements
  • Loading branch information
Abhishek-kumar09 authored May 31, 2023
2 parents 76bbf7f + d940282 commit acc2080
Show file tree
Hide file tree
Showing 9 changed files with 1,372 additions and 163 deletions.
108 changes: 54 additions & 54 deletions .github/workflows/check-dist.yml
Original file line number Diff line number Diff line change
@@ -1,54 +1,54 @@
# `dist/index.js` is a special file in Actions.
# When you reference an action with `uses:` in a workflow,
# `index.js` is the code that will run.
# For our project, we generate this file through a build process from other source files.
# We need to make sure the checked-in `index.js` actually matches what we expect it to be.
name: Check dist/

on:
push:
branches:
- master
- main
paths-ignore:
- '**.md'
pull_request:
paths-ignore:
- '**.md'
workflow_dispatch:

jobs:
check-dist:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3

- name: Set Node.js 16.x
uses: actions/[email protected]
with:
node-version: 16.x

- name: Install dependencies
run: npm ci

- name: Rebuild the dist/ directory
run: |
npm run build
npm run package
- name: Compare the expected and actual dist/ directories
run: |
if [ "$(git diff --ignore-space-at-eol dist/ | wc -l)" -gt "0" ]; then
echo "Detected uncommitted changes after build. See status below:"
git diff
exit 1
fi
id: diff

# If index.js was different than expected, upload the expected version as an artifact
- uses: actions/upload-artifact@v3
if: ${{ failure() && steps.diff.conclusion == 'failure' }}
with:
name: dist
path: dist/
# # `dist/index.js` is a special file in Actions.
# # When you reference an action with `uses:` in a workflow,
# # `index.js` is the code that will run.
# # For our project, we generate this file through a build process from other source files.
# # We need to make sure the checked-in `index.js` actually matches what we expect it to be.
# name: Check dist/

# on:
# push:
# branches:
# - master
# - main
# paths-ignore:
# - '**.md'
# pull_request:
# paths-ignore:
# - '**.md'
# workflow_dispatch:

# jobs:
# check-dist:
# runs-on: ubuntu-latest

# steps:
# - uses: actions/checkout@v3

# - name: Set Node.js 16.x
# uses: actions/[email protected]
# with:
# node-version: 16.x

# - name: Install dependencies
# run: npm ci

# - name: Rebuild the dist/ directory
# run: |
# npm run build
# npm run package

# - name: Compare the expected and actual dist/ directories
# run: |
# if [ "$(git diff --ignore-space-at-eol dist/ | wc -l)" -gt "0" ]; then
# echo "Detected uncommitted changes after build. See status below:"
# git diff
# exit 1
# fi
# id: diff

# # If index.js was different than expected, upload the expected version as an artifact
# - uses: actions/upload-artifact@v3
# if: ${{ failure() && steps.diff.conclusion == 'failure' }}
# with:
# name: dist
# path: dist/
3 changes: 2 additions & 1 deletion .github/workflows/pr-target-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,5 @@ jobs:
githubToken: ${{ secrets.GITHUB_TOKEN }}
providerToken: ${{ secrets.PROVIDER_TOKEN }}
cypressRecordKey: ${{ secrets.CYPRESS_RECORD_KEY }}
applicationId: c791ec8f-ec1a-47c1-b606-d39982e42ca6
applicationId: c791ec8f-ec1a-47c1-b606-d39982e42ca6
prNumber: 11
12 changes: 1 addition & 11 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,6 @@ on: # rebuild any PRs and main branch changes
- 'releases/*'

jobs:
build: # make sure build/ci work properly
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: install node pkges
working-directory: node-action
run: npm install
- name: build
working-directory: node-action
run: |
NODE_OPTIONS=--openssl-legacy-provider npm run all
test: # make sure the action works on a clean machine without building
runs-on: ubuntu-latest
steps:
Expand All @@ -31,3 +20,4 @@ jobs:
providerToken: ${{ secrets.PROVIDER_TOKEN }}
cypressRecordKey: ${{ secrets.CYPRESS_RECORD_KEY }}
applicationId: c791ec8f-ec1a-47c1-b606-d39982e42ca6
prNumber: 11
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,9 @@ Find out more on the <a href="https://layer5.io/community">Layer5 community</a>.
<br /><br /><br /><br />
</p>
<div>&nbsp;</div>
<a href="https://slack.meshery.io">
Expand Down
184 changes: 87 additions & 97 deletions action.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: 'Infra-shot'
name: 'MeshMap-Snapshot'
description: 'Walks in application and takes a shot of your infrastructure using Meshery Extension MeshMap'
author: Layer5
inputs:
Expand All @@ -18,83 +18,88 @@ inputs:
cypressRecordKey:
description: "cypress record key"
required: false
prNumber:
description: "The Pull request on which comment has to be made"
required: false
default: 0
outputs:
mardownResult: # id of output
description: 'The markdown result'
runs:
using: "composite"
steps:
# - run: echo ${{ inputs.designId }}
# shell: bash
# - run: echo ${{ inputs.applicationId }}
# shell: bash
# - name: ping playground
# id: ping-playground
# run: |
# echo "IS_PLAYGROUND_RUNNING=$(./playground-ping.sh)" >> "$GITHUB_OUTPUT"
# shell: bash
# - name: set active cluster URL as playground
# if: ${{ steps.ping-playground.outputs.IS_PLAYGROUND_RUNNING }}
# run: echo "MESHERY_URL=https://playground.meshery.io" >> $GITHUB_ENV
# shell: bash
# - name: set active cluster URL as localhost:9081
# if: ${{ !steps.ping-playground.outputs.IS_PLAYGROUND_RUNNING }}
# run: echo "MESHERY_URL=http://127.0.0.1:9081" >> $GITHUB_ENV
# shell: bash
# - name: Create k8s Kind Cluster
# if: ${{ !steps.ping-playground.outputs.IS_PLAYGROUND_RUNNING }}
# uses: helm/[email protected]
# with:
# cluster_name: "kind-cluster"
# - run: echo ${{ steps.ping-playground.outputs.IS_PLAYGROUND_RUNNING }}
# shell: bash
# - run:
# working-directory: cypress-action/
# if: ${{ !steps.ping-playground.outputs.IS_PLAYGROUND_RUNNING }}
# shell: bash
# - name: Cypress run
# uses: cypress-io/github-action@v4
# with:
# working-directory: cypress-action
# spec: cypress/e2e/e2e/**/*
# browser: chrome
# # record: true
# env:
# GITHUB_TOKEN: ${{ inputs.githubToken }}
# CYPRESS_token: ${{ inputs.providerToken }}
# CYPRESS_releasetag: ${{env.tag}}
# CYPRESS_applicationId: ${{ inputs.applicationId }}
# # CYPRESS_RECORD_KEY: ${{ inputs.cypressRecordKey }}
# - run: ls
# shell: bash
# - run: tree cypress-action/cypress/ -L 2me
# shell: bash
# - name: Upload Cypress artifacts
# if: always()
# uses: actions/upload-artifact@v3
# with:
# name: cypress-ss
# path: cypress-action/cypress/videos
# - name: Upload Cypress artifacts
# if: always()
# uses: actions/upload-artifact@v3
# with:
# name: cypress-ss
# path: cypress-action/cypress/screenshots
# - run: echo "SCREENSHOT_NAME=$(ls)" >> $GITHUB_ENV # Assumption: There is only one screenshot in the download directory
# working-directory: cypress-action/cypress/downloads
# shell: bash
# - run: mv "$SCREENSHOT_NAME" screenshot.png
# working-directory: cypress-action/cypress/downloads
# shell: bash
# - run: |
# export request=$(curl --fail -d "$(base64 -i screenshot.png)" 'https://staging-meshery.layer5.io/api/integration/github/meta/artifacts' \
# -H "Content-Type: multipart/form-data" \
# -H "Authorization: Bearer eyJhY2Nlc3NfdG9rZW4iOiJleUpoYkdjaU9pSlNVekkxTmlJc0ltdHBaQ0k2SW5CMVlteHBZenBqTURobFpEVm1OUzAzTWpCbExUUmlaV1l0WVRGalppMHdZMlZoWXpBNE16WTJOemNpTENKMGVYQWlPaUpLVjFRaWZRLmV5SmhkV1FpT2x0ZExDSmpiR2xsYm5SZmFXUWlPaUp0WlhOb1pYSjVMV05zYjNWa0lpd2laWGh3SWpveE5qZzFOVE01T0RZM0xDSmxlSFFpT250OUxDSnBZWFFpT2pFMk9EVTBOVE0wTmpZc0ltbHpjeUk2SW1oMGRIQnpPaTh2YzNSaFoybHVaeTF0WlhOb1pYSjVMbXhoZVdWeU5TNXBieTlvZVdSeVlTOGlMQ0pxZEdraU9pSXhORFUzWmpWbU1TMDFaRFppTFRRMU5tSXRZV0poWlMwMk5XRTRORFJpTnpWak5ESWlMQ0p1WW1ZaU9qRTJPRFUwTlRNME5qWXNJbk5qY0NJNld5SnZjR1Z1YVdRaUxDSnZabVpzYVc1bElpd2liMlptYkdsdVpWOWhZMk5sYzNNaVhTd2ljM1ZpSWpvaVdWZEtiMkZZVG05YVYzTjFZVE5XZEZsWVNrRmlSMFkxV2xoSk1VeHRiSFk2WWxkV2VtRkhWbmxsVXpGcVlrYzVNVnBCUFQwaWZRLm9vTGRjNWI2WGVjUFFCTDBkamlrZ3lGeERQLW1FYVV6amtaQzlyclo5ZWN6M0ZQT0NkRDI0M0ZJMUpuekh4OWJrLUNCOS04dVBUakxvSkVNV2Jnd2RlY3RDUDFiM0k5ZmZWbU1mVmhVcDBNSFcteG1FYm41X3hlb29kb3d4NW1pVGR0Q0ZUbVY0aVBDYVlNVEdHOE1oaGRUU1JycGdLbzhjT1MtN3Y4RlVTMEVqOFltVHJsZ1V6XzA1aDBROU1vdHREc19mdUNTOVk3Tm9sX3g0NDNSYXpXLWt1RkN4N1B5cGg4Z3dEMHZBTlh3M0l5aFZQQUZkRXdNRkEzMFluNkd4amhyT1YwaFNCclR4TmFXaS1JZE43YTJjRDlrcVUtYk1uNHVRWmRMR09CUTk4MjNxRDhnaW45cmRXbnFCSmc5UDVobExncGhUbUlqeERfOHNxcFhKWTdKcmhFTndXQW1UNVY3aEpKV0dFTzRWVGRxNWg2WkxRTTRTbFBnLWJOVU94OVZJdUxIbWUxVlR4Wmg4RXdoVWg1cUsyamhRLWhVUWstVVVFYUVXRFhfTHFkTGRkemhrMWFhdmwwTmFXc2w3aTNRN2ZKd25sejllY29nSk8wSmthV2dfLTFOZmNvbmFMclZRVUxOdWFYYnVHNlA5Vi14Y3lBdjZ5d29YNnE0RTJYd0RfS0tqVnkwUG9PdXJ3QldxbWtpa1hTeUw4NWFLOUNKaG1RRjZYVEVERGlYTHk4SHJLSUxuaEZQbDd5My1kRkJ5R0JwYjlpc3lCdU1PcGRreHhmTzBQUGFHQ2lvN1lwMkJjc19WamxRbVRhQ2U3eXdOOV9xbTJidERwQW9GUGxEYWVGSFpaUXRuRElKUXdjdVVpbU1ZanRPZU8zcDNEZGdZdmsyVVFJIiwidG9rZW5fdHlwZSI6ImJlYXJlciIsInJlZnJlc2hfdG9rZW4iOiJ1OE5adXNqSkk4ZWR2bWVKOVpSdXo5TmdnSWc0NHEyQmgtNVkwNkN1MkxZLmc2ejdkenlsUTBZMWV4SnFNMG1heUlpdW9aYjFPdFIwRm9DSVU1NkdOb0EiLCJleHBpcnkiOiIyMDIzLTA1LTMxVDEzOjMxOjA2LjczMjk4MzU5OVoifQ");
# echo "RESOURCE_URL=$request" >> $GITHUB_ENV
# id: cloud-response
# working-directory: cypress-action/cypress/downloads
# shell: bash
- run: echo ${{ inputs.designId }}
shell: bash
- run: echo ${{ inputs.applicationId }}
shell: bash
- name: ping playground
id: ping-playground
run: |
echo "IS_PLAYGROUND_RUNNING=$(./playground-ping.sh)" >> "$GITHUB_OUTPUT"
shell: bash
- name: set active cluster URL as playground
if: ${{ steps.ping-playground.outputs.IS_PLAYGROUND_RUNNING }}
run: echo "MESHERY_URL=https://playground.meshery.io" >> $GITHUB_ENV
shell: bash
- name: set active cluster URL as localhost:9081
if: ${{ !steps.ping-playground.outputs.IS_PLAYGROUND_RUNNING }}
run: echo "MESHERY_URL=http://127.0.0.1:9081" >> $GITHUB_ENV
shell: bash
- name: Create k8s Kind Cluster
if: ${{ !steps.ping-playground.outputs.IS_PLAYGROUND_RUNNING }}
uses: helm/[email protected]
with:
cluster_name: "kind-cluster"
- run: echo ${{ steps.ping-playground.outputs.IS_PLAYGROUND_RUNNING }}
shell: bash
- run:
working-directory: cypress-action/
if: ${{ !steps.ping-playground.outputs.IS_PLAYGROUND_RUNNING }}
shell: bash
- name: Cypress run
uses: cypress-io/github-action@v4
with:
working-directory: cypress-action
spec: cypress/e2e/e2e/**/*
browser: chrome
# record: true
env:
GITHUB_TOKEN: ${{ inputs.githubToken }}
CYPRESS_token: ${{ inputs.providerToken }}
CYPRESS_releasetag: ${{env.tag}}
CYPRESS_applicationId: ${{ inputs.applicationId }}
# CYPRESS_RECORD_KEY: ${{ inputs.cypressRecordKey }}
- run: ls
shell: bash
- run: tree cypress-action/cypress/ -L 2me
shell: bash
- name: Upload Cypress artifacts
if: always()
uses: actions/upload-artifact@v3
with:
name: cypress-ss
path: cypress-action/cypress/videos
- name: Upload Cypress artifacts
if: always()
uses: actions/upload-artifact@v3
with:
name: cypress-ss
path: cypress-action/cypress/screenshots
- run: echo "SCREENSHOT_NAME=$(ls)" >> $GITHUB_ENV # Assumption: There is only one screenshot in the download directory
working-directory: cypress-action/cypress/downloads
shell: bash
- run: mv "$SCREENSHOT_NAME" screenshot.png
working-directory: cypress-action/cypress/downloads
shell: bash
- run: |
export request=$(curl --fail -d "$(base64 -i screenshot.png)" 'https://meshery.layer5.io/api/integration/github/meta/artifacts' \
-H "Content-Type: multipart/form-data" \
-H "Authorization: Bearer ${{ inputs.providerToken }}");
# TODO: fail in case of not 2XX or 3XX
echo "RESOURCE_URL=$request" >> $GITHUB_ENV
id: cloud-response
working-directory: cypress-action/cypress/downloads
shell: bash
- name: Get Organization and Repository
if: always()
run: |
Expand All @@ -106,30 +111,15 @@ runs:
echo "ORGANIZATION=$organization" >> $GITHUB_ENV
echo "REPOSITORY=$repository" >> $GITHUB_ENV
shell: bash
- name: Check Pull Request
if: ${{ env.GITHUB_EVENT_NAME == 'pull_request' }}
run: |
# Read pull request number from the event payload
pull_request_number=$(jq --raw-output .pull_request.number "$GITHUB_EVENT_PATH")
echo "PR_NUM=$pull_request_number" >> $GITHUB_ENV
shell: bash
- run: echo $ORGANIZATION && echo $REPOSITORY && echo $PR_NUM
shell: bash







# - name: Comment Success Status
# if: ${{ success() || steps.runTest.outcome == 'success' || steps.retryTest.outcome == 'success' || steps.retryTest2.outcome == 'success' }}
# uses: hasura/[email protected]
# with:
# github-token: ${{ secrets.GH_ACCESS_TOKEN }}
# repository: 'layer5labs/meshery-extensions'
# number: ${{ inputs.pr_number }}
# id: extension-test
# message: ':white_check_mark: All tests passed!'
# append: true
- name: Comment Success Status
if: ${{ success() && inputs.prNumber != '0' }}
uses: hasura/[email protected]
with:
github-token: ${{ inputs.githubToken }}
repository: "${{env.ORGANIZATION}}/${{env.REPOSITORY}}"
number: ${{ inputs.prNumber }}
id: meshmap-snapshot
message: "![github-ss](${{env.RESOURCE_URL}})"
append: false
Binary file added upload-artifacts/img.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit acc2080

Please sign in to comment.