From 5fe516014fb6efe69b9d301d0ae263c8d25c0681 Mon Sep 17 00:00:00 2001 From: Duncan Paterson Date: Tue, 8 Dec 2020 10:42:21 +0100 Subject: [PATCH 1/5] fix(ci): init switch to ghaction --- .github/workflows/node.js.yml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 .github/workflows/node.js.yml diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml new file mode 100644 index 00000000..673bd331 --- /dev/null +++ b/.github/workflows/node.js.yml @@ -0,0 +1,29 @@ +# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions + +name: Node.js CI + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [10.x, 12.x, 14.x] + + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + - run: npm ci + - run: npm run build --if-present + - run: npm test From a930c3646deae92c0940b006b53f0ce53a7ba58d Mon Sep 17 00:00:00 2001 From: Duncan Paterson Date: Tue, 8 Dec 2020 10:57:34 +0100 Subject: [PATCH 2/5] fix(ci): skip tests on deprecated polymer apps --- test/generated-pkg/app-polymer-app.js | 2 +- test/generated-pkg/app-polymer-element.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/generated-pkg/app-polymer-app.js b/test/generated-pkg/app-polymer-app.js index d22ae1a3..c02e2a04 100644 --- a/test/generated-pkg/app-polymer-app.js +++ b/test/generated-pkg/app-polymer-app.js @@ -4,7 +4,7 @@ var assert = require('yeoman-assert') var helpers = require('yeoman-test') var fs = require('fs-extra') -describe('polymer element', function () { +describe.skip('polymer element', function () { before(function () { this.timeout(30000) return helpers.run(path.join(__dirname, '../../generators/app')) diff --git a/test/generated-pkg/app-polymer-element.js b/test/generated-pkg/app-polymer-element.js index 217eba1a..4952a944 100644 --- a/test/generated-pkg/app-polymer-element.js +++ b/test/generated-pkg/app-polymer-element.js @@ -4,7 +4,7 @@ var assert = require('yeoman-assert') var helpers = require('yeoman-test') var fs = require('fs-extra') -describe('polymer element', function () { +describe.skip('polymer element', function () { before(function () { this.timeout(30000) return helpers.run(path.join(__dirname, '../../generators/app')) From 502629d449cb5bf8d4acf33c422c2b7f4dcf699d Mon Sep 17 00:00:00 2001 From: Duncan Paterson Date: Tue, 8 Dec 2020 11:24:30 +0100 Subject: [PATCH 3/5] fix(ci): init semantic release workflow --- .github/workflows/release.yml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..3ccb030f --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,25 @@ +name: Release +on: + push: + branches: + - master +jobs: + release: + name: Release + runs-on: ubuntu-18.04 + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: Setup Node.js + uses: actions/setup-node@v1 + with: + node-version: 12 + - name: Install dependencies + run: npm ci + - name: Release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + run: npx semantic-release \ No newline at end of file From dad69c7b57b1c80d24565dc1e754717ccb14540c Mon Sep 17 00:00:00 2001 From: Duncan Paterson Date: Tue, 8 Dec 2020 12:55:16 +0100 Subject: [PATCH 4/5] fix(readme): add new pill added NPM secret use ubuntu-latest --- .github/workflows/release.yml | 2 +- README.md | 18 +++++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3ccb030f..397cfaaf 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,7 +6,7 @@ on: jobs: release: name: Release - runs-on: ubuntu-18.04 + runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 diff --git a/README.md b/README.md index 4170bed3..bf9d3d13 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ -# generator-exist [![NPM version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Dependency Status][daviddm-image]][daviddm-url] [![semantic-release][sem-rel-img]][sem-rel-url] [![Codacy Badge][codacy-image]][codacy-url] +# generator-exist + +[![NPM version][npm-image]][npm-url] ![Node.js CI](https://github.com/eXist-db/generator-exist/workflows/Node.js%20CI/badge.svg) [![semantic-release][sem-rel-img]][sem-rel-url] [![Codacy Badge][codacy-image]][codacy-url] > exist app scaffolding @@ -11,21 +13,27 @@ No more manual closing of html5 tags, inserting app names into config files, or First, install [Yeoman](http://yeoman.io) and generator-exist using [npm](https://www.npmjs.com/) (we assume you have pre-installed [node.js](https://nodejs.org/)). ### From GitHub + To install a pre-release version: + ```bash npm i -g yo npm i -g git://github.com/eXist-db/generator-exist.git ``` ### Official release + To install a version published to npm: + ```bash npm i -g yo npm i -g @existdb/generator-exist ``` ### From Source + Alternatively, if you have cloned this repo from GitHub. You can symlink your local clone into your global node environment. This is particularly useful during development. From inside the folder with the cloned repo: + ```bash npm install -g yo npm i @@ -33,6 +41,7 @@ npm link ``` ## Using the Generator + Then generate your new project: Create a new project folder and navigate to it in you CLI. ```bash @@ -41,11 +50,13 @@ cd myApp ``` Then run the generator. If you installed from source or GitHub, + ```bash yo exist ``` or if you installed from npm: + ```bash yo @existdb/exist ``` @@ -57,6 +68,7 @@ Note: If you told yeoman to use Github for your new project, your project will s Some of the answers, such as username will be stored after the initial run of the generator. So you only have to type them once. ## Development + If you want to contribute another template or option, please take a look at the issue tracker. Pull request are always welcome. This generator uses `mocha` for unit testing. Please make sure to add tests when opening a PR. ## License @@ -65,10 +77,6 @@ MIT © [Duncan Paterson](https://github.com/duncdrum) [npm-image]: https://badge.fury.io/js/%40existdb%2Fgenerator-exist.svg [npm-url]: https://www.npmjs.com/package/@existdb/generator-exist -[travis-image]: https://travis-ci.com/eXist-db/generator-exist.svg?token=qpLmm7SAUYJsXY8vZsRs&branch=master -[travis-url]: https://travis-ci.com/eXist-db/generator-exist -[daviddm-image]: https://david-dm.org/eXist-db/generator-exist.svg?theme=shields.io -[daviddm-url]: https://david-dm.org/eXist-db/generator-exist [sem-rel-img]: https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg [sem-rel-url]: https://github.com/semantic-release/semantic-release [codacy-image]: https://api.codacy.com/project/badge/Grade/a03a4fbd291a48739e69cdd2af50df05 From 90eb74f391406b6f856b94057b1f4fcc8dd5d73d Mon Sep 17 00:00:00 2001 From: Duncan Paterson Date: Tue, 8 Dec 2020 13:07:42 +0100 Subject: [PATCH 5/5] fix(tests): before hooks --- test/generated-pkg/app-eXide-default.js | 2 +- test/generated-pkg/app-eXide-plain.js | 2 +- test/generated-pkg/app-empty.js | 2 +- test/generated-pkg/app-lib.js | 2 +- test/generated-pkg/app-mysec.js | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/test/generated-pkg/app-eXide-default.js b/test/generated-pkg/app-eXide-default.js index 1162a9b3..71188a8d 100644 --- a/test/generated-pkg/app-eXide-default.js +++ b/test/generated-pkg/app-eXide-default.js @@ -21,7 +21,7 @@ describe('eXide style …', function () { docker: false, atom: false }) - .then(function (done) { + .then(function () { return assert.noFile('readme.md', 'Dockerfile') }) }) diff --git a/test/generated-pkg/app-eXide-plain.js b/test/generated-pkg/app-eXide-plain.js index 86300b54..028d9837 100644 --- a/test/generated-pkg/app-eXide-plain.js +++ b/test/generated-pkg/app-eXide-plain.js @@ -22,7 +22,7 @@ describe('eXide plain app', function () { dockertag: '5.0.0', atom: true }) - .then(function (done) { + .then(function () { return assert.noFile(['resources/images/bold.gif', 'pre-install.xql', 'test/cypress/integration/secure_spec.js']) }) }) diff --git a/test/generated-pkg/app-empty.js b/test/generated-pkg/app-empty.js index b42ec9f3..c7f94904 100644 --- a/test/generated-pkg/app-empty.js +++ b/test/generated-pkg/app-empty.js @@ -19,7 +19,7 @@ describe('empty package', function () { github: false, atom: false }) - .then(function (done) { + .then(function () { return assert.noFile(['modules/app.xql', 'templates/page.html'], 'test/cypress/integration/login-ok_spec.js') }) }) diff --git a/test/generated-pkg/app-lib.js b/test/generated-pkg/app-lib.js index 24405d38..1db4546e 100644 --- a/test/generated-pkg/app-lib.js +++ b/test/generated-pkg/app-lib.js @@ -19,7 +19,7 @@ describe('library package', function () { github: true, atom: false }) - .then(function (done) { + .then(function () { return assert.noFile(['modules/app.xql', 'modules/test-suite.xql', 'templates/page.html', 'reports/screenshots/.gitkeep', 'controller.xql']) }) }) diff --git a/test/generated-pkg/app-mysec.js b/test/generated-pkg/app-mysec.js index 5eb5035a..c12349bb 100644 --- a/test/generated-pkg/app-mysec.js +++ b/test/generated-pkg/app-mysec.js @@ -21,7 +21,7 @@ describe('eXide style …', function () { setperm: false, atom: false }) - .then(function (done) { + .then(function () { return assert.noFile('readme.md') }) })