Skip to content

Commit eaf0e04

Browse files
committed
feat: convert to be a generic menu plugin template
1 parent 72dd04d commit eaf0e04

File tree

14 files changed

+711
-280
lines changed

14 files changed

+711
-280
lines changed

.github/actions/setup-node-env/action.yml

Lines changed: 0 additions & 30 deletions
This file was deleted.

.github/workflows/continuous-deployment.yml

Lines changed: 7 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,10 @@ on:
55
- main
66

77
jobs:
8-
deploy:
9-
runs-on: ubuntu-latest
10-
steps:
11-
- name: Checkout
12-
uses: actions/checkout@v4
13-
14-
- name: Set up Node.js
15-
uses: actions/setup-node@v3
16-
with:
17-
node-version: '22'
18-
19-
- name: Install dependencies
20-
run: npm ci
21-
22-
- name: Build
23-
run: npm run bundle
24-
25-
- name: Deploy
26-
run: |
27-
git remote set-url origin https://git:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git
28-
npx gh-pages -d dist -u "github-actions <support+actions@github.com>"
29-
env:
30-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
8+
ci-cd:
9+
permissions:
10+
contents: write
11+
pull-requests: write
12+
uses: OMICRONEnergyOSS/oscd-gh-workflows/.github/workflows/continuous-deployment.yml@main
13+
secrets:
14+
gh_token: ${{ secrets.GITHUB_TOKEN }}
Lines changed: 7 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,78 +1,17 @@
1-
name: Release
2-
1+
name: Release Please
32
on:
43
push:
54
branches:
65
- main
7-
workflow_dispatch:
86

97
jobs:
10-
release-please:
11-
runs-on: ubuntu-latest
12-
outputs:
13-
release_created: ${{ steps.release.outputs.release_created }}
8+
release:
149
permissions:
1510
contents: write
16-
pull-requests: write
1711
issues: write
18-
steps:
19-
- uses: googleapis/release-please-action@v4
20-
id: release
21-
with:
22-
token: ${{ secrets.GITHUB_TOKEN }}
23-
config-file: release-please-config.json
24-
manifest-file: .release-please-manifest.json
25-
26-
npm-publish:
27-
needs: release-please
28-
if: ${{ needs.release-please.outputs.release_created }}
29-
runs-on: ubuntu-latest
30-
permissions:
31-
contents: read
32-
id-token: write
33-
steps:
34-
- uses: actions/checkout@v4
35-
- name: Setup Node.js
36-
uses: actions/setup-node@v4
37-
with:
38-
node-version: '22'
39-
registry-url: 'https://registry.npmjs.org'
40-
cache: 'npm'
41-
- name: Install dependencies
42-
run: npm ci
43-
- name: Build the package
44-
run: npm run build
45-
- name: Publish to NPMJS.org
46-
run: npm publish --provenance --access public
47-
env:
48-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
49-
50-
upload-release-bundle:
51-
needs: release-please
52-
if: ${{ needs.release-please.outputs.release_created }}
53-
runs-on: ubuntu-latest
54-
permissions:
55-
contents: write
12+
pull-requests: write
5613
id-token: write
57-
58-
steps:
59-
- uses: actions/checkout@v4
60-
61-
- name: Setup Node Environment
62-
run: npm ci
63-
64-
- name: Set repository name env var
65-
run: echo "REPO_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
66-
67-
- name: Build plugin bundle
68-
run: npm run bundle
69-
70-
- name: Create zipped bundle
71-
run: |
72-
(cd ./dist && zip -r ../${REPO_NAME}.zip .)
73-
tar -C ./dist -czvf ${REPO_NAME}.tar.gz ./
74-
75-
- name: Upload zipped bundle to GitHub release
76-
env:
77-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
78-
run: gh release upload ${{ needs.release-please.outputs.tag_name }} ${REPO_NAME}.zip ${REPO_NAME}.tar.gz
14+
uses: OMICRONEnergyOSS/oscd-gh-workflows/.github/workflows/release-please.yml@main
15+
secrets:
16+
npm_token: ${{ secrets.NPM_TOKEN }}
17+
gh_token: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/test.yml

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,12 @@
1-
name: Test
2-
on: [push, pull_request, workflow_dispatch]
1+
name: Unit Tests
2+
on:
3+
push:
4+
branches:
5+
- main
36

47
jobs:
58
test:
6-
runs-on: ubuntu-latest
7-
container:
8-
image: mcr.microsoft.com/playwright:v1.54.1-noble
9-
options: --user 1001
10-
steps:
11-
- name: Checkout
12-
uses: actions/checkout@v4
13-
14-
- uses: ./.github/actions/setup-node-env
15-
16-
- name: Build
17-
run: npm run-script build
18-
19-
- name: Run unit tests
20-
run: npm run-script test
9+
permissions:
10+
contents: write
11+
pull-requests: write
12+
uses: OMICRONEnergyOSS/oscd-gh-workflows/.github/workflows/unit-tests.yml@main

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
[![Tests](https://github.com/OMICRONEnergyOSS/oscd-menu-save/actions/workflows/test.yml/badge.svg)](https://github.com/OMICRONEnergyOSS/oscd-menu-save/actions/workflows/test.yml) ![NPM Version](https://img.shields.io/npm/v/@omicronenergy/oscd-menu-save)
1+
[![Tests](https://github.com/OMICRONEnergyOSS/oscd-template-menu/actions/workflows/test.yml/badge.svg)](https://github.com/OMICRONEnergyOSS/oscd-template-menu/actions/workflows/test.yml) ![NPM Version](https://img.shields.io/npm/v/@omicronenergy/oscd-template-menu)
22

3-
# \<oscd-menu-save>
3+
# \<oscd-template-menu>
44

55
This webcomponent follows the [open-wc](https://github.com/open-wc/open-wc) recommendation.
66

demo/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<title>oscd-designer demo</title>
1+
<title>oscd-template-menu demo</title>
22
<link
33
rel="stylesheet"
44
href="https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@300&family=Roboto:wght@300;400;500&display=swap"

demo/plugins.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import OscdMenuOpen from '@omicronenergy/oscd-menu-open';
22
import OscdBackgroundEditV1 from '@omicronenergy/oscd-background-editv1';
33

4-
import OscdMenuSave from '../oscd-menu-save.js';
4+
import OscdMenuSave from '../oscd-template-menu.js';
55

66
customElements.define('oscd-menu-open', OscdMenuOpen);
77
customElements.define('oscd-background-editv1', OscdBackgroundEditV1);
88

9-
customElements.define('oscd-menu-save', OscdMenuSave);
9+
customElements.define('oscd-template-menu', OscdMenuSave);
1010

1111
export const plugins = {
1212
menu: [
@@ -21,7 +21,7 @@ export const plugins = {
2121
translations: { de: 'Datei speichern' },
2222
icon: 'save',
2323
requireDoc: true,
24-
tagName: 'oscd-menu-save',
24+
tagName: 'oscd-template-menu',
2525
},
2626
],
2727
editor: [],

oscd-menu-save.spec.ts

Lines changed: 0 additions & 94 deletions
This file was deleted.

oscd-menu-save.ts

Lines changed: 0 additions & 33 deletions
This file was deleted.

oscd-template-menu.spec.ts

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import { expect, fixture, html } from '@open-wc/testing';
2+
import OscdTemplateMenu from './oscd-template-menu.js';
3+
4+
customElements.define('oscd-template-menu', OscdTemplateMenu);
5+
6+
const sclXmlDocString = `<?xml version="1.0" encoding="UTF-8"?><SCL version="2007" revision="B" xmlns="http://www.iec.ch/61850/2003/SCL" xmlns:ens1="http://example.org/somePreexistingExtensionNamespace">
7+
<Substation ens1:foo="a" name="A1" desc="test substation"></Substation>
8+
</SCL>`;
9+
10+
describe('oscd-template-menu', () => {
11+
let plugin: OscdTemplateMenu;
12+
13+
beforeEach(async () => {
14+
const sclDoc = new DOMParser().parseFromString(
15+
sclXmlDocString,
16+
'application/xml',
17+
);
18+
plugin = await fixture(html`<oscd-template-menu></oscd-template-menu>`);
19+
plugin.docs = {
20+
'test.scd': sclDoc,
21+
};
22+
plugin.doc = sclDoc;
23+
plugin.docName = 'test.scd';
24+
});
25+
26+
afterEach(() => {
27+
plugin.remove();
28+
});
29+
30+
it('tests that the plugin works as expected', async () => {
31+
await plugin.run();
32+
// Add your assertions here
33+
expect(plugin.docName).to.equal('test.scd');
34+
});
35+
});

0 commit comments

Comments
 (0)