diff options
-rw-r--r-- | .github/workflows/main.yaml | 10 | ||||
-rw-r--r-- | extension/package.json | 1 | ||||
-rw-r--r-- | extension/scripts/package.js | 43 | ||||
-rw-r--r-- | extension/scripts/prepackage.js | 31 |
4 files changed, 45 insertions, 40 deletions
diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 94f7073b..9475ba68 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -115,10 +115,10 @@ jobs: # Run tests - - name: Package the extension + - name: Prepare the extension run: | cd extension - npm run package + npm run prepackage - name: Install Xvfb for Linux and run tests run: | @@ -135,7 +135,11 @@ jobs: npm run test if: matrix.os != 'ubuntu-20.04' - # Upload .vsix artifact + # Create and upload .vsix artifact + - name: Package the extension + run: | + cd extension + npm run package - name: Upload .vsix as an artifact uses: actions/upload-artifact@v2 diff --git a/extension/package.json b/extension/package.json index 4d800458..46b1dd02 100644 --- a/extension/package.json +++ b/extension/package.json @@ -193,6 +193,7 @@ "lint": "eslint src --ext ts", "build-test": "tsc && node esbuild.test.mjs", "test": "npm run build-test && node ./out/test-runner/runTestOnVSCodeHost.js", + "prepackage": "node scripts/prepackage.js", "package": "node scripts/package.js" }, "devDependencies": { diff --git a/extension/scripts/package.js b/extension/scripts/package.js index 59da9181..8f1e68fd 100644 --- a/extension/scripts/package.js +++ b/extension/scripts/package.js @@ -1,42 +1,11 @@ const { exec } = require("child_process"); const fs = require("fs"); -const path = require("path"); -exec("npm install", (error) => { - if (error) throw error; - console.log("npm install completed"); - - exec("npm run typegen", (error) => { - if (error) throw error; - console.log("npm run typegen completed"); - - process.chdir("react-app"); - - exec("npm install", (error) => { - if (error) throw error; - console.log("npm install in react-app completed"); +if (!fs.existsSync("build")) { + fs.mkdirSync("build"); +} - exec("npm run build", (error) => { - if (error) throw error; - if (!fs.existsSync(path.join("dist", "assets", "index.js"))) { - throw new Error("react-app build did not produce index.js"); - } - if (!fs.existsSync(path.join("dist", "assets", "index.css"))) { - throw new Error("react-app build did not produce index.css"); - } - console.log("npm run build in react-app completed"); - - process.chdir(".."); - - if (!fs.existsSync("build")) { - fs.mkdirSync("build"); - } - - exec("vsce package --out ./build patch", (error) => { - if (error) throw error; - console.log("vsce package completed"); - }); - }); - }); - }); +exec("vsce package --out ./build patch", (error) => { + if (error) throw error; + console.log("vsce package completed"); }); diff --git a/extension/scripts/prepackage.js b/extension/scripts/prepackage.js new file mode 100644 index 00000000..c55df802 --- /dev/null +++ b/extension/scripts/prepackage.js @@ -0,0 +1,31 @@ +const { exec } = require("child_process"); +const fs = require("fs"); +const path = require("path"); + +exec("npm install", (error) => { + if (error) throw error; + console.log("npm install completed"); + + exec("npm run typegen", (error) => { + if (error) throw error; + console.log("npm run typegen completed"); + + process.chdir("react-app"); + + exec("npm install", (error) => { + if (error) throw error; + console.log("npm install in react-app completed"); + + exec("npm run build", (error) => { + if (error) throw error; + if (!fs.existsSync(path.join("dist", "assets", "index.js"))) { + throw new Error("react-app build did not produce index.js"); + } + if (!fs.existsSync(path.join("dist", "assets", "index.css"))) { + throw new Error("react-app build did not produce index.css"); + } + console.log("npm run build in react-app completed"); + }); + }); + }); +}); |