diff --git a/generators/app/index.js b/generators/app/index.js index c17447b7..14a31aa8 100644 --- a/generators/app/index.js +++ b/generators/app/index.js @@ -504,6 +504,17 @@ module.exports = class extends Generator { generator.extensionConfig.pkgManager = pckgManagerAnswer.pkgManager; }); }, + + askForGithubWorkflows: () => { + return generator.prompt({ + type: 'confirm', + name: 'gitHubWorkFlowInit', + message: 'Include GitHub workflow file?', + default: true + }).then(gitAnswer => { + generator.extensionConfig.gitHubWorkFlowInit = gitAnswer.gitHubWorkFlowInit; + }); + }, }; // run all prompts in sequence. Results can be ignored. @@ -567,6 +578,9 @@ module.exports = class extends Generator { this.fs.copy(this.sourceRoot() + '/gitignore', context.name + '/.gitignore'); this.fs.copy(this.sourceRoot() + '/gitattributes', context.name + '/.gitattributes'); } + if (this.extensionConfig.gitHubWorkFlowInit) { + this.fs.copy(this.sourceRoot() + '/github', context.name + '/.github'); + } } // Write Color Theme Extension @@ -600,6 +614,9 @@ module.exports = class extends Generator { this.fs.copy(this.sourceRoot() + '/gitignore', context.name + '/.gitignore'); this.fs.copy(this.sourceRoot() + '/gitattributes', context.name + '/.gitattributes'); } + if (this.extensionConfig.gitHubWorkFlowInit) { + this.fs.copy(this.sourceRoot() + '/github', context.name + '/.github'); + } } // Write Language Extension @@ -624,6 +641,9 @@ module.exports = class extends Generator { this.fs.copy(this.sourceRoot() + '/gitignore', context.name + '/.gitignore'); this.fs.copy(this.sourceRoot() + '/gitattributes', context.name + '/.gitattributes'); } + if (this.extensionConfig.gitHubWorkFlowInit) { + this.fs.copy(this.sourceRoot() + '/github', context.name + '/.github'); + } } // Write Snippets Extension @@ -641,6 +661,9 @@ module.exports = class extends Generator { this.fs.copy(this.sourceRoot() + '/gitignore', context.name + '/.gitignore'); this.fs.copy(this.sourceRoot() + '/gitattributes', context.name + '/.gitattributes'); } + if (this.extensionConfig.gitHubWorkFlowInit) { + this.fs.copy(this.sourceRoot() + '/github', context.name + '/.github'); + } } // Write Snippets Extension @@ -657,6 +680,9 @@ module.exports = class extends Generator { this.fs.copy(this.sourceRoot() + '/gitignore', context.name + '/.gitignore'); this.fs.copy(this.sourceRoot() + '/gitattributes', context.name + '/.gitattributes'); } + if (this.extensionConfig.gitHubWorkFlowInit) { + this.fs.copy(this.sourceRoot() + '/github', context.name + '/.github'); + } } // Write Command Extension (TypeScript) @@ -680,6 +706,10 @@ module.exports = class extends Generator { this.fs.copy(this.sourceRoot() + '/tslint.json', context.name + '/tslint.json'); + if (this.extensionConfig.gitHubWorkFlowInit) { + this.fs.copy(this.sourceRoot() + '/github', context.name + '/.github'); + } + this.extensionConfig.installDependencies = true; } @@ -705,6 +735,10 @@ module.exports = class extends Generator { this.fs.copyTpl(this.sourceRoot() + '/package.json', context.name + '/package.json', context); this.fs.copyTpl(this.sourceRoot() + '/.eslintrc.json', context.name + '/.eslintrc.json', context); + if (this.extensionConfig.gitHubWorkFlowInit) { + this.fs.copy(this.sourceRoot() + '/github', context.name + '/.github'); + } + this.extensionConfig.installDependencies = true; } diff --git a/generators/app/localization.js b/generators/app/localization.js index 5bb45a41..616e89c4 100644 --- a/generators/app/localization.js +++ b/generators/app/localization.js @@ -73,5 +73,9 @@ exports.writingLocalizationExtension = (generator) => { generator.fs.copy(generator.sourceRoot() + '/gitignore', context.name + '/.gitignore'); generator.fs.copy(generator.sourceRoot() + '/gitattributes', context.name + '/.gitattributes'); + if (context.gitHubWorkFlowInit) { + generator.fs.copy(generator.sourceRoot() + '/github', context.name + '/.github'); + } + context.installDependencies = true; -} \ No newline at end of file +} diff --git a/generators/app/templates/ext-colortheme/github/workflows/publish.yml b/generators/app/templates/ext-colortheme/github/workflows/publish.yml new file mode 100644 index 00000000..2d76273c --- /dev/null +++ b/generators/app/templates/ext-colortheme/github/workflows/publish.yml @@ -0,0 +1,24 @@ +name: Publish +on: + release: + types: [published] + +jobs: + publish: + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-node@v1 + with: + node-version: 12.x + - name: Package extension + run: | + tag=${GITHUB_REF#refs/tags/} + echo "Setting package version $tag" + npm --no-git-tag-version version "$tag" + npx vsce package + - name: Publish extension to marketplace + env: + AZURE_TOKEN: ${{ secrets.AZURE_TOKEN }} + run: | + npx vsce publish -p "$AZURE_TOKEN" diff --git a/generators/app/templates/ext-colortheme/package.json b/generators/app/templates/ext-colortheme/package.json index 6d6dfda0..ae74586c 100644 --- a/generators/app/templates/ext-colortheme/package.json +++ b/generators/app/templates/ext-colortheme/package.json @@ -2,7 +2,7 @@ "name": <%- JSON.stringify(name) %>, "displayName": <%- JSON.stringify(displayName) %>, "description": <%- JSON.stringify(description) %>, - "version": "0.0.1", + "version": "<% if (gitHubWorkFlowInit) { %>0.0.0<% } else { %>0.0.1<% } %>", "engines": { "vscode": <%- JSON.stringify(vsCodeEngine) %> }, @@ -18,4 +18,4 @@ } ] } -} \ No newline at end of file +} diff --git a/generators/app/templates/ext-colortheme/vscodeignore b/generators/app/templates/ext-colortheme/vscodeignore index f369b5e5..f20bb6c4 100644 --- a/generators/app/templates/ext-colortheme/vscodeignore +++ b/generators/app/templates/ext-colortheme/vscodeignore @@ -2,3 +2,4 @@ .vscode-test/** .gitignore vsc-extension-quickstart.md +.github/** diff --git a/generators/app/templates/ext-command-js/github/workflows/test-publish.yml b/generators/app/templates/ext-command-js/github/workflows/test-publish.yml new file mode 100644 index 00000000..463bae60 --- /dev/null +++ b/generators/app/templates/ext-command-js/github/workflows/test-publish.yml @@ -0,0 +1,51 @@ +name: Test & Publish +on: + push: + release: + types: [published] + +jobs: + test: + runs-on: ${{ matrix.os }} + strategy: + matrix: + node-version: [12.x] + os: [ubuntu-latest, windows-latest, macos-latest] + steps: + - uses: actions/checkout@v1 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + - name: Start Xvfb + run: | + Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 & + if: matrix.os == 'ubuntu-latest' + - name: Test extension on ${{ matrix.os }} + run: | + npm ci + npm test + env: + DISPLAY: ':99.0' + CI: 'true' + + publish: + needs: [test] + if: github.event_name == 'release' && github.event.action == 'published' + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-node@v1 + with: + node-version: 12.x + - name: Package extension + run: | + tag=${GITHUB_REF#refs/tags/} + echo "Setting package version $tag" + npm --no-git-tag-version version "$tag" + npx vsce package + - name: Publish extension to marketplace + env: + AZURE_TOKEN: ${{ secrets.AZURE_TOKEN }} + run: | + npx vsce publish -p "$AZURE_TOKEN" diff --git a/generators/app/templates/ext-command-js/package.json b/generators/app/templates/ext-command-js/package.json index a75820d0..75db9958 100644 --- a/generators/app/templates/ext-command-js/package.json +++ b/generators/app/templates/ext-command-js/package.json @@ -2,7 +2,7 @@ "name": <%- JSON.stringify(name) %>, "displayName": <%- JSON.stringify(displayName) %>, "description": <%- JSON.stringify(description) %>, - "version": "0.0.1", + "version": "<% if (gitHubWorkFlowInit) { %>0.0.0<% } else { %>0.0.1<% } %>", "engines": { "vscode": <%- JSON.stringify(vsCodeEngine) %> }, diff --git a/generators/app/templates/ext-command-js/vscodeignore b/generators/app/templates/ext-command-js/vscodeignore index 2f361b0d..45484c86 100644 --- a/generators/app/templates/ext-command-js/vscodeignore +++ b/generators/app/templates/ext-command-js/vscodeignore @@ -6,3 +6,4 @@ vsc-extension-quickstart.md **/jsconfig.json **/*.map **/.eslintrc.json +.github/** diff --git a/generators/app/templates/ext-command-ts/github/workflows/test-publish.yml b/generators/app/templates/ext-command-ts/github/workflows/test-publish.yml new file mode 100644 index 00000000..463bae60 --- /dev/null +++ b/generators/app/templates/ext-command-ts/github/workflows/test-publish.yml @@ -0,0 +1,51 @@ +name: Test & Publish +on: + push: + release: + types: [published] + +jobs: + test: + runs-on: ${{ matrix.os }} + strategy: + matrix: + node-version: [12.x] + os: [ubuntu-latest, windows-latest, macos-latest] + steps: + - uses: actions/checkout@v1 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + - name: Start Xvfb + run: | + Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 & + if: matrix.os == 'ubuntu-latest' + - name: Test extension on ${{ matrix.os }} + run: | + npm ci + npm test + env: + DISPLAY: ':99.0' + CI: 'true' + + publish: + needs: [test] + if: github.event_name == 'release' && github.event.action == 'published' + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-node@v1 + with: + node-version: 12.x + - name: Package extension + run: | + tag=${GITHUB_REF#refs/tags/} + echo "Setting package version $tag" + npm --no-git-tag-version version "$tag" + npx vsce package + - name: Publish extension to marketplace + env: + AZURE_TOKEN: ${{ secrets.AZURE_TOKEN }} + run: | + npx vsce publish -p "$AZURE_TOKEN" diff --git a/generators/app/templates/ext-command-ts/package.json b/generators/app/templates/ext-command-ts/package.json index 16d870fd..3f8f0631 100644 --- a/generators/app/templates/ext-command-ts/package.json +++ b/generators/app/templates/ext-command-ts/package.json @@ -2,7 +2,7 @@ "name": <%- JSON.stringify(name) %>, "displayName": <%- JSON.stringify(displayName) %>, "description": <%- JSON.stringify(description) %>, - "version": "0.0.1", + "version": "<% if (gitHubWorkFlowInit) { %>0.0.0<% } else { %>0.0.1<% } %>", "engines": { "vscode": <%- JSON.stringify(vsCodeEngine) %> }, diff --git a/generators/app/templates/ext-command-ts/vscodeignore b/generators/app/templates/ext-command-ts/vscodeignore index ed3f9d37..a2a54191 100644 --- a/generators/app/templates/ext-command-ts/vscodeignore +++ b/generators/app/templates/ext-command-ts/vscodeignore @@ -7,4 +7,5 @@ vsc-extension-quickstart.md **/tsconfig.json **/tslint.json **/*.map -**/*.ts \ No newline at end of file +**/*.ts +.github/** diff --git a/generators/app/templates/ext-extensionpack/github/workflows/publish.yml b/generators/app/templates/ext-extensionpack/github/workflows/publish.yml new file mode 100644 index 00000000..2d76273c --- /dev/null +++ b/generators/app/templates/ext-extensionpack/github/workflows/publish.yml @@ -0,0 +1,24 @@ +name: Publish +on: + release: + types: [published] + +jobs: + publish: + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-node@v1 + with: + node-version: 12.x + - name: Package extension + run: | + tag=${GITHUB_REF#refs/tags/} + echo "Setting package version $tag" + npm --no-git-tag-version version "$tag" + npx vsce package + - name: Publish extension to marketplace + env: + AZURE_TOKEN: ${{ secrets.AZURE_TOKEN }} + run: | + npx vsce publish -p "$AZURE_TOKEN" diff --git a/generators/app/templates/ext-extensionpack/package.json b/generators/app/templates/ext-extensionpack/package.json index 7091963e..2d6b3bc9 100644 --- a/generators/app/templates/ext-extensionpack/package.json +++ b/generators/app/templates/ext-extensionpack/package.json @@ -2,7 +2,7 @@ "name": <%- JSON.stringify(name) %>, "displayName": <%- JSON.stringify(displayName) %>, "description": <%- JSON.stringify(description) %>, - "version": "0.0.1", + "version": "<% if (gitHubWorkFlowInit) { %>0.0.0<% } else { %>0.0.1<% } %>", "engines": { "vscode": <%- JSON.stringify(vsCodeEngine) %> }, @@ -13,4 +13,4 @@ "<%- extensionList[i] %>", <%}%> "<%- extensionList[extensionList.length-1]%>" ] -} \ No newline at end of file +} diff --git a/generators/app/templates/ext-extensionpack/vscodeignore b/generators/app/templates/ext-extensionpack/vscodeignore index f369b5e5..f20bb6c4 100644 --- a/generators/app/templates/ext-extensionpack/vscodeignore +++ b/generators/app/templates/ext-extensionpack/vscodeignore @@ -2,3 +2,4 @@ .vscode-test/** .gitignore vsc-extension-quickstart.md +.github/** diff --git a/generators/app/templates/ext-keymap/github/workflows/publish.yml b/generators/app/templates/ext-keymap/github/workflows/publish.yml new file mode 100644 index 00000000..2d76273c --- /dev/null +++ b/generators/app/templates/ext-keymap/github/workflows/publish.yml @@ -0,0 +1,24 @@ +name: Publish +on: + release: + types: [published] + +jobs: + publish: + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-node@v1 + with: + node-version: 12.x + - name: Package extension + run: | + tag=${GITHUB_REF#refs/tags/} + echo "Setting package version $tag" + npm --no-git-tag-version version "$tag" + npx vsce package + - name: Publish extension to marketplace + env: + AZURE_TOKEN: ${{ secrets.AZURE_TOKEN }} + run: | + npx vsce publish -p "$AZURE_TOKEN" diff --git a/generators/app/templates/ext-keymap/package.json b/generators/app/templates/ext-keymap/package.json index b7971900..c6edbfaf 100644 --- a/generators/app/templates/ext-keymap/package.json +++ b/generators/app/templates/ext-keymap/package.json @@ -2,7 +2,7 @@ "name": <%- JSON.stringify(name) %>, "displayName": <%- JSON.stringify(displayName) %>, "description": <%- JSON.stringify(description) %>, - "version": "0.0.1", + "version": "<% if (gitHubWorkFlowInit) { %>0.0.0<% } else { %>0.0.1<% } %>", "engines": { "vscode": <%- JSON.stringify(vsCodeEngine) %> }, @@ -17,4 +17,4 @@ } ] } -} \ No newline at end of file +} diff --git a/generators/app/templates/ext-keymap/vscodeignore b/generators/app/templates/ext-keymap/vscodeignore index f369b5e5..f20bb6c4 100644 --- a/generators/app/templates/ext-keymap/vscodeignore +++ b/generators/app/templates/ext-keymap/vscodeignore @@ -2,3 +2,4 @@ .vscode-test/** .gitignore vsc-extension-quickstart.md +.github/** diff --git a/generators/app/templates/ext-language/github/workflows/publish.yml b/generators/app/templates/ext-language/github/workflows/publish.yml new file mode 100644 index 00000000..2d76273c --- /dev/null +++ b/generators/app/templates/ext-language/github/workflows/publish.yml @@ -0,0 +1,24 @@ +name: Publish +on: + release: + types: [published] + +jobs: + publish: + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-node@v1 + with: + node-version: 12.x + - name: Package extension + run: | + tag=${GITHUB_REF#refs/tags/} + echo "Setting package version $tag" + npm --no-git-tag-version version "$tag" + npx vsce package + - name: Publish extension to marketplace + env: + AZURE_TOKEN: ${{ secrets.AZURE_TOKEN }} + run: | + npx vsce publish -p "$AZURE_TOKEN" diff --git a/generators/app/templates/ext-language/package.json b/generators/app/templates/ext-language/package.json index f344cb3d..e4fb60b3 100644 --- a/generators/app/templates/ext-language/package.json +++ b/generators/app/templates/ext-language/package.json @@ -2,7 +2,7 @@ "name": <%- JSON.stringify(name) %>, "displayName": <%- JSON.stringify(displayName) %>, "description": <%- JSON.stringify(description) %>, - "version": "0.0.1", + "version": "<% if (gitHubWorkFlowInit) { %>0.0.0<% } else { %>0.0.1<% } %>", "engines": { "vscode": <%- JSON.stringify(vsCodeEngine) %> }, @@ -22,4 +22,4 @@ "path": <%- JSON.stringify("./syntaxes/" + languageFileName) %> }] } -} \ No newline at end of file +} diff --git a/generators/app/templates/ext-language/vscodeignore b/generators/app/templates/ext-language/vscodeignore index f369b5e5..f20bb6c4 100644 --- a/generators/app/templates/ext-language/vscodeignore +++ b/generators/app/templates/ext-language/vscodeignore @@ -2,3 +2,4 @@ .vscode-test/** .gitignore vsc-extension-quickstart.md +.github/** diff --git a/generators/app/templates/ext-localization/github/workflows/publish.yml b/generators/app/templates/ext-localization/github/workflows/publish.yml new file mode 100644 index 00000000..2d76273c --- /dev/null +++ b/generators/app/templates/ext-localization/github/workflows/publish.yml @@ -0,0 +1,24 @@ +name: Publish +on: + release: + types: [published] + +jobs: + publish: + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-node@v1 + with: + node-version: 12.x + - name: Package extension + run: | + tag=${GITHUB_REF#refs/tags/} + echo "Setting package version $tag" + npm --no-git-tag-version version "$tag" + npx vsce package + - name: Publish extension to marketplace + env: + AZURE_TOKEN: ${{ secrets.AZURE_TOKEN }} + run: | + npx vsce publish -p "$AZURE_TOKEN" diff --git a/generators/app/templates/ext-localization/package.json b/generators/app/templates/ext-localization/package.json index dda55e0a..e80ab860 100644 --- a/generators/app/templates/ext-localization/package.json +++ b/generators/app/templates/ext-localization/package.json @@ -2,7 +2,7 @@ "name": <%- JSON.stringify(name) %>, "displayName": <%- JSON.stringify(displayName) %>, "description": <%- JSON.stringify(description) %>, - "version": "0.0.1", + "version": "<% if (gitHubWorkFlowInit) { %>0.0.0<% } else { %>0.0.1<% } %>", "engines": { "vscode": <%- JSON.stringify(vsCodeEngine) %> }, diff --git a/generators/app/templates/ext-localization/vscodeignore b/generators/app/templates/ext-localization/vscodeignore index 062e23c9..72890557 100644 --- a/generators/app/templates/ext-localization/vscodeignore +++ b/generators/app/templates/ext-localization/vscodeignore @@ -3,3 +3,4 @@ .gitignore vsc-extension-quickstart.md node_modules +.github/** diff --git a/generators/app/templates/ext-snippets/github/workflows/publish.yml b/generators/app/templates/ext-snippets/github/workflows/publish.yml new file mode 100644 index 00000000..2d76273c --- /dev/null +++ b/generators/app/templates/ext-snippets/github/workflows/publish.yml @@ -0,0 +1,24 @@ +name: Publish +on: + release: + types: [published] + +jobs: + publish: + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-node@v1 + with: + node-version: 12.x + - name: Package extension + run: | + tag=${GITHUB_REF#refs/tags/} + echo "Setting package version $tag" + npm --no-git-tag-version version "$tag" + npx vsce package + - name: Publish extension to marketplace + env: + AZURE_TOKEN: ${{ secrets.AZURE_TOKEN }} + run: | + npx vsce publish -p "$AZURE_TOKEN" diff --git a/generators/app/templates/ext-snippets/package.json b/generators/app/templates/ext-snippets/package.json index 796fbef7..896cd398 100644 --- a/generators/app/templates/ext-snippets/package.json +++ b/generators/app/templates/ext-snippets/package.json @@ -2,7 +2,7 @@ "name": <%- JSON.stringify(name) %>, "displayName": <%- JSON.stringify(displayName) %>, "description": <%- JSON.stringify(description) %>, - "version": "0.0.1", + "version": "<% if (gitHubWorkFlowInit) { %>0.0.0<% } else { %>0.0.1<% } %>", "engines": { "vscode": <%- JSON.stringify(vsCodeEngine) %> }, @@ -17,4 +17,4 @@ } ] } -} \ No newline at end of file +} diff --git a/generators/app/templates/ext-snippets/vscodeignore b/generators/app/templates/ext-snippets/vscodeignore index f369b5e5..f20bb6c4 100644 --- a/generators/app/templates/ext-snippets/vscodeignore +++ b/generators/app/templates/ext-snippets/vscodeignore @@ -2,3 +2,4 @@ .vscode-test/** .gitignore vsc-extension-quickstart.md +.github/** diff --git a/test/test.js b/test/test.js index 45f79b79..a74719ff 100644 --- a/test/test.js +++ b/test/test.js @@ -59,13 +59,14 @@ describe('test code generator', function () { description: 'My TestTheme', themeName: 'Green', themeBase: 'vs-dark', + gitHubWorkFlowInit: true }) // Mock the prompt answers .toPromise().then(function () { var expectedPackageJSON = { "name": "testTheme", "displayName": "Test Theme", "description": "My TestTheme", - "version": "0.0.1", + "version": "0.0.0", "engines": { "vscode": engineVersion }, @@ -93,7 +94,7 @@ describe('test code generator', function () { "tokenColors": "./Monokai.tmTheme" }; try { - assert.file(['package.json', 'README.md', 'CHANGELOG.md', 'themes/Green-color-theme.json', 'themes/Monokai.tmTheme', 'vsc-extension-quickstart.md', '.vscodeignore']); + assert.file(['package.json', 'README.md', 'CHANGELOG.md', 'themes/Green-color-theme.json', 'themes/Monokai.tmTheme', 'vsc-extension-quickstart.md', '.vscodeignore', '.github/workflows/publish.yml']); var body = fs.readFileSync('package.json', 'utf8'); @@ -124,6 +125,7 @@ describe('test code generator', function () { description: 'My TestTheme', themeName: 'Green', themeBase: 'vs-dark', + gitHubWorkFlowInit: false, }) // Mock the prompt answers .toPromise().then(function () { var expectedPackageJSON = { @@ -189,6 +191,7 @@ describe('test code generator', function () { description: 'Theme SeventyFour', themeName: 'Theme 74', themeBase: 'vs-dark', + gitHubWorkFlowInit: false, }) // Mock the prompt answers .toPromise().then(function () { var expectedPackageJSON = { @@ -272,6 +275,7 @@ describe('test code generator', function () { description: 'My TestTheme', themeName: 'Funky', themeBase: 'vs', + gitHubWorkFlowInit: false, }) // Mock the prompt answers .toPromise().then(function () { var expectedPackageJSON = { @@ -328,14 +332,15 @@ describe('test code generator', function () { languageId: 'ant', languageName: 'ANT', languageScopeName: 'text.xml.ant', - languageExtensions: '.ant' + languageExtensions: '.ant', + gitHubWorkFlowInit: true, }) // Mock the prompt answers .toPromise().then(function () { var expected = { "name": "testLan", "displayName": "Test Lan", "description": "My TestLan", - "version": "0.0.1", + "version": "0.0.0", "engines": { "vscode": engineVersion }, @@ -357,7 +362,7 @@ describe('test code generator', function () { } }; try { - assert.file(['package.json', 'README.md', 'CHANGELOG.md', 'syntaxes/ant.tmLanguage', 'language-configuration.json', 'vsc-extension-quickstart.md', '.vscodeignore']); + assert.file(['package.json', 'README.md', 'CHANGELOG.md', 'syntaxes/ant.tmLanguage', 'language-configuration.json', 'vsc-extension-quickstart.md', '.vscodeignore', '.github/workflows/publish.yml']); var body = fs.readFileSync('package.json', 'utf8'); @@ -383,7 +388,8 @@ describe('test code generator', function () { languageId: 'foo', languageName: 'FOO', languageScopeName: 'source.foo', - languageExtensions: '.foo' + languageExtensions: '.foo', + gitHubWorkFlowInit: false, }) // Mock the prompt answers .toPromise().then(function () { var expected = { @@ -438,7 +444,8 @@ describe('test code generator', function () { languageId: 'crusty', languageName: 'Crusty', languageScopeName: 'source.crusty', - languageExtensions: '.crusty' + languageExtensions: '.crusty', + gitHubWorkFlowInit: false, }) // Mock the prompt answers .toPromise().then(function () { var expected = { @@ -497,14 +504,15 @@ describe('test code generator', function () { name: 'testSnip', displayName: 'Test Snip', description: 'My TestSnip', - languageId: 'python' + languageId: 'python', + gitHubWorkFlowInit: true, }) // Mock the prompt answers .toPromise().then(function () { var expected = { "name": "testSnip", "displayName": 'Test Snip', "description": "My TestSnip", - "version": "0.0.1", + "version": "0.0.0", "engines": { "vscode": engineVersion }, @@ -519,7 +527,7 @@ describe('test code generator', function () { } }; try { - assert.file(['package.json', 'README.md', 'CHANGELOG.md', 'snippets/snippets.json', 'vsc-extension-quickstart.md', '.vscodeignore']); + assert.file(['package.json', 'README.md', 'CHANGELOG.md', 'snippets/snippets.json', 'vsc-extension-quickstart.md', '.vscodeignore', '.github/workflows/publish.yml']); var body = fs.readFileSync('package.json', 'utf8'); @@ -544,7 +552,8 @@ describe('test code generator', function () { name: 'testSnip', displayName: 'Test Snip', description: 'My TestSnip', - languageId: 'python' + languageId: 'python', + gitHubWorkFlowInit: false, }) // Mock the prompt answers .toPromise().then(function () { var expected = { @@ -620,13 +629,14 @@ describe('test code generator', function () { name: 'testKeym', displayName: 'Test Keym', description: 'My TestKeym', + gitHubWorkFlowInit: true, }) // Mock the prompt answers .toPromise().then(function () { var expected = { "name": "testKeym", "displayName": 'Test Keym', "description": "My TestKeym", - "version": "0.0.1", + "version": "0.0.0", "engines": { "vscode": engineVersion }, @@ -641,7 +651,7 @@ describe('test code generator', function () { } }; try { - assert.file(['package.json', 'README.md', 'CHANGELOG.md', 'vsc-extension-quickstart.md', '.vscodeignore']); + assert.file(['package.json', 'README.md', 'CHANGELOG.md', 'vsc-extension-quickstart.md', '.vscodeignore', '.github/workflows/publish.yml']); var body = fs.readFileSync('package.json', 'utf8'); @@ -666,14 +676,15 @@ describe('test code generator', function () { displayName: 'Test Com', description: 'My TestCom', gitInit: true, - pkgManager: 'npm' + pkgManager: 'npm', + gitHubWorkFlowInit: true, }) // Mock the prompt answers .toPromise().then(function () { var expectedPackageJSON = { "name": "testCom", "displayName": 'Test Com', "description": "My TestCom", - "version": "0.0.1", + "version": "0.0.0", "engines": { "vscode": engineVersion }, @@ -712,7 +723,7 @@ describe('test code generator', function () { try { - assert.file(['package.json', 'README.md', 'CHANGELOG.md', '.vscodeignore', 'src/extension.ts', 'src/test/suite/extension.test.ts', 'src/test/suite/index.ts', 'tsconfig.json']); + assert.file(['package.json', 'README.md', 'CHANGELOG.md', '.vscodeignore', 'src/extension.ts', 'src/test/suite/extension.test.ts', 'src/test/suite/index.ts', 'tsconfig.json', '.github/workflows/test-publish.yml']); var packageJSONBody = fs.readFileSync('package.json', 'utf8') var actualPackageJSON = JSON.parse(packageJSONBody); @@ -736,7 +747,8 @@ describe('test code generator', function () { description: 'My TestCom', tslint: true, gitInit: false, - pkgManager: 'yarn' + pkgManager: 'yarn', + gitHubWorkFlowInit: false, }) // Mock the prompt answers .toPromise().then(function () { var expectedPackageJSON = { @@ -826,14 +838,15 @@ describe('test code generator', function () { description: 'My TestCom', checkJavaScript: false, gitInit: false, - pkgManager: 'npm' + pkgManager: 'npm', + gitHubWorkFlowInit: true, }) // Mock the prompt answers .toPromise().then(function () { var expected = { "name": "testCom", "displayName": 'Test Com', "description": "My TestCom", - "version": "0.0.1", + "version": "0.0.0", "engines": { "vscode": engineVersion }, @@ -868,7 +881,7 @@ describe('test code generator', function () { try { - assert.file(['package.json', 'README.md', 'CHANGELOG.md', '.vscodeignore', 'extension.js', 'test/suite/extension.test.js', 'test/suite/index.js', 'jsconfig.json']); + assert.file(['package.json', 'README.md', 'CHANGELOG.md', '.vscodeignore', 'extension.js', 'test/suite/extension.test.js', 'test/suite/index.js', 'jsconfig.json', '.github/workflows/test-publish.yml']); var body = fs.readFileSync('package.json', 'utf8'); @@ -893,7 +906,8 @@ describe('test code generator', function () { description: 'My TestCom', checkJavaScript: true, gitInit: false, - pkgManager: 'yarn' + pkgManager: 'yarn', + gitHubWorkFlowInit: false, }) // Mock the prompt answers .toPromise().then(function () { var expected = { @@ -930,14 +944,15 @@ describe('test code generator', function () { type: 'ext-extensionpack', name: 'testExtensionPack', displayName: 'Test Extension Pack', - description: 'My Test Extension Pack' + description: 'My Test Extension Pack', + gitHubWorkFlowInit: true, }) // Mock the prompt answers .toPromise().then(function () { var expected = { "name": "testExtensionPack", "displayName": "Test Extension Pack", "description": "My Test Extension Pack", - "version": "0.0.1", + "version": "0.0.0", "engines": { "vscode": engineVersion }, @@ -949,7 +964,7 @@ describe('test code generator', function () { ] }; try { - assert.file(['package.json', 'README.md', 'CHANGELOG.md', 'vsc-extension-quickstart.md', '.vscodeignore']); + assert.file(['package.json', 'README.md', 'CHANGELOG.md', 'vsc-extension-quickstart.md', '.vscodeignore', '.github/workflows/publish.yml']); var body = fs.readFileSync('package.json', 'utf8'); @@ -970,13 +985,14 @@ describe('test code generator', function () { lpLanguageId: 'ru', lpLanguageName: 'Russian', lpLocalizedLanguageName: 'русский', - pkgManager: 'npm' + pkgManager: 'npm', + gitHubWorkFlowInit: true, }).toPromise().then(function () { var expected = { "name": "vscode-language-pack-ru", "displayName": "Russian Language Pack", "description": "Language pack extension for Russian", - "version": "0.0.1", + "version": "0.0.0", "engines": { "vscode": engineVersion }, @@ -995,7 +1011,7 @@ describe('test code generator', function () { } }; try { - assert.file(['package.json', 'README.md', 'CHANGELOG.md', 'vsc-extension-quickstart.md', '.vscodeignore']); + assert.file(['package.json', 'README.md', 'CHANGELOG.md', 'vsc-extension-quickstart.md', '.vscodeignore', '.github/workflows/publish.yml']); var body = fs.readFileSync('package.json', 'utf8'); @@ -1016,7 +1032,8 @@ describe('test code generator', function () { lpLanguageId: 'ru', lpLanguageName: 'Russian', lpLocalizedLanguageName: 'русский', - pkgManager: 'yarn' + pkgManager: 'yarn', + gitHubWorkFlowInit: false, }).toPromise().then(function () { var expected = { "name": "vscode-language-pack-ru",