fix(demo): drop heroku tests

This commit is contained in:
Łukasz Mierzwa
2022-09-29 20:16:12 +01:00
committed by Łukasz Mierzwa
parent 274b02e6e1
commit 78516a2fcf
10 changed files with 3 additions and 7030 deletions

View File

@@ -32,9 +32,6 @@ jobs:
- name: Regenerate ui package-lock.json
run: cd ui && npm i
- name: Regenerate e2e package-lock.json
run: cd ui/e2e && npm i
- name: Create Pull Request
id: cpr
uses: peter-evans/create-pull-request@v4.1.3

View File

@@ -513,58 +513,3 @@ jobs:
tags: ${{ env.DOCKER_TAGS }}
build-args: |
VERSION=${{ env.VERSION }}
demo-deploy:
name: Deploy demo app to Heroku
if: github.event.pull_request.head.repo.full_name == github.event.pull_request.base.repo.full_name
needs: stage-test-and-lint
runs-on: ubuntu-20.04
steps:
- name: Check out code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up Node JS
uses: actions/setup-node@v3
with:
node-version: 18.10.0
cache: 'npm'
cache-dependency-path: 'ui/e2e/package-lock.json'
- name: Install Heroku CLI
run: curl -s --connect-timeout 30 --fail https://cli-assets.heroku.com/install.sh | sh
- name: Build Docker image
run: docker build --build-arg VERSION=$(make show-version) -t registry.heroku.com/karma-demo/web -f demo/Dockerfile .
shell: bash
- name: Write .netrc
run: |
echo "machine api.heroku.com" >> $HOME/.netrc
echo " login l.mierzwa@gmail.com" >> $HOME/.netrc
echo " password ${HEROKU_API_KEY}" >> $HOME/.netrc
env:
HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}
- name: Login to Heroku
run: echo "${HEROKU_API_KEY}" | docker login registry.heroku.com -u _ --password-stdin
env:
HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}
- name: Push docker image to Heroku
run: docker push registry.heroku.com/karma-demo/web
- name: Trigger Heroku release
run: /usr/local/bin/heroku container:release web --app karma-demo
- name: Run e2e test
uses: nick-invision/retry@v2.8.1
with:
timeout_minutes: 10
max_attempts: 3
command: make -C ui/e2e test
- name: Rollback on failure
if: failure()
run: /usr/local/bin/heroku releases:rollback --app karma-demo

1
.gitignore vendored
View File

@@ -6,6 +6,5 @@
/ui/coverage
/ui/node_modules
/ui/.eslintcache
/ui/e2e/node_modules
/TODO.md
/.vscode

View File

@@ -15,7 +15,7 @@ test: lint
.PHONY: clean
clean:
rm -fr $(NAME) $(NAME)-* ui/build ui/build.pre ui/node_modules ui/coverage ui/e2e/node_modules coverage.txt
rm -fr $(NAME) $(NAME)-* ui/build ui/build.pre ui/node_modules ui/coverage coverage.txt
.PHONY: show-version
show-version:

View File

@@ -151,9 +151,8 @@ media queries.
## Demo
[Online demo](https://karma-demo.herokuapp.com/) is running latest main branch
or PR branch version. It might include features that are experimental and not
yet ready to be included.
[Online demo](https://demo.karma-dashboard.io/) is running latest main branch.
It might include features that are experimental and not yet ready to be included.
## Release notes

View File

@@ -1 +0,0 @@
save-exact=true

View File

@@ -1,17 +0,0 @@
NODE_PATH := $(shell npm bin)
NODE_MODULES := $(shell dirname `npm bin`)
NODE_INSTALL := $(NODE_MODULES)/.install
PATH := $(PATH):$(NODE_PATH)
SHELL := env PATH=$(PATH) /bin/sh
$(NODE_INSTALL): package.json package-lock.json
@if [ -e $(NODE_INSTALL) ]; then npm install ; else npm ci; fi
touch $@
$(NODE_PATH)/%: $(NODE_INSTALL)
@if [ ! -x $@ ]; then echo "missing script: $@" ; exit 1; fi
.PHONY: test
test: $(NODE_PATH)/jest
CI=true npm run test

View File

@@ -1,95 +0,0 @@
const puppeteer = require("puppeteer");
let browser;
let page;
jest.setTimeout(30000);
describe("Demo", () => {
beforeAll(async () => {
browser = await puppeteer.launch();
});
afterAll(async () => {
await browser.close();
});
beforeEach(async () => {
page = await browser.newPage();
await page.goto("http://karma-demo.herokuapp.com/");
await page.waitForSelector("div.components-grid-alertgrid-alertgroup");
});
it('should be titled "karma-demo"', async () => {
await expect(page.title()).resolves.toMatch("karma-demo");
});
it("should render alert gruops", async () => {
const alertGroups = await page.evaluate(() => {
const anchors = Array.from(
document.querySelectorAll(
".components-grid-alertgrid-alertgroup > .card > .card-header"
)
);
return anchors.map((anchor) => anchor.textContent);
});
await expect(alertGroups.length).toBeGreaterThan(10);
await expect(alertGroups).toEqual(
expect.arrayContaining([
"Inhibition Test Alertcluster: prod1",
"Disk Free Lowcluster: prod10",
"Time Annotationcluster: prod1",
])
);
});
it("opens overview modal on click", async () => {
await page.waitForSelector("div.cursor-pointer.navbar-brand");
await page.click("div.cursor-pointer.navbar-brand");
await page.waitForSelector(
"div.modal-open.components-animation-modal-enter-done"
);
await page.waitForSelector("div.modal-content");
await page.waitForSelector(".components-labelWithPercent-percent");
const labels = await page.evaluate(() => {
const anchors = Array.from(
document.querySelectorAll(".components-labelWithPercent-percent")
);
return anchors.map((anchor) => anchor.textContent);
});
await expect(labels.length).toBeGreaterThan(10);
await page.click(".modal-header > button.btn-close");
});
it("opens silence modal on click", async () => {
await page.waitForSelector("#components-new-silence");
await page.click("#components-new-silence");
await page.waitForSelector(
"div.modal-open.components-animation-modal-enter-done"
);
await page.waitForSelector("div.modal-content");
await page.waitForSelector(".modal-body > form");
await page.click(".modal-header > nav > button.btn-close");
});
it("opens settings modal on click", async () => {
await page.waitForSelector("#components-settings");
await page.click("#components-settings");
await page.waitForSelector(
"div.modal-open.components-animation-modal-enter-done"
);
await page.waitForSelector("div.modal-content");
await page.waitForSelector(".modal-body > div.accordion");
await page.click(".modal-header > nav > button.btn-close");
});
});

6837
ui/e2e/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,17 +0,0 @@
{
"name": "e2e",
"version": "0.0.1",
"license": "Apache-2.0",
"private": true,
"engines": {
"npm": ">=8.3 <9.0",
"node": "18.10.0"
},
"scripts": {
"test": "jest --runInBand demo.test.js"
},
"devDependencies": {
"jest": "29.1.1",
"puppeteer": "18.0.5"
}
}