Skip to content

Commit db86501

Browse files
committed
scripts: Updated deploying + staging processes
1 parent 5269660 commit db86501

File tree

12 files changed

+90
-81
lines changed

12 files changed

+90
-81
lines changed

README.md

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -63,16 +63,16 @@ ProzillaOS uses the package manager [pnpm](https://pnpm.io/) to run scripts.
6363

6464
| Script | Description |
6565
| --- | --- |
66-
| <pre>pnpm&nbsp;run&nbsp;start</pre> | Run [`pnpm run site:start`](#package-prozilla-os-demo). VSCode is configured to run this script whenever the project is opened.
66+
| <pre>pnpm&nbsp;run&nbsp;start</pre> | Run [`pnpm run demo:start`](#package-prozilla-os-demo). VSCode is configured to run this script whenever the project is opened.
6767
| <pre>pnpm&nbsp;run&nbsp;build</pre> | Build every package in sequential order.
68-
| <pre>pnpm&nbsp;run&nbsp;deploy</pre> | Clear the `dist` directory, build and stage each package that comprises the website, then deploy to GitHub pages. This should then trigger a GitHub Action that deploys the build to production.
69-
| <pre>pnpm&nbsp;run&nbsp;publish</pre> | Publish the `dist` directory directly to GitHub pages.
68+
| <pre>pnpm&nbsp;run&nbsp;stage</pre> | Copy and combine the build of each package that comprises the website in the `dist` directory at the root.
69+
| <pre>pnpm&nbsp;run&nbsp;deploy</pre> | Clear the `dist` directory, stage each package that comprises the website, then deploy to GitHub pages. This should trigger a GitHub Action that deploys the build to production.
7070

7171
### Public packages
7272

7373
| Script | Description |
7474
| --- | --- |
75-
| <pre>pnpm&nbsp;run&nbsp;packages:build</pre> | Build all packages using Vite in sequential order and output to respective `dist` directories.
75+
| <pre>pnpm&nbsp;run&nbsp;packages:build</pre> | Build all dependencies of the `prozilla-os` package in sequential order and output to respective `dist` directories.
7676
| <pre>pnpm&nbsp;run&nbsp;packages:update</pre> | Create a new changeset for packages and update their version accordingly.
7777
| <pre>pnpm&nbsp;run&nbsp;packages:release</pre> | Publish the latest versions of each package to the npm registry.
7878

@@ -87,7 +87,6 @@ ProzillaOS uses the package manager [pnpm](https://pnpm.io/) to run scripts.
8787
| <pre>pnpm&nbsp;run&nbsp;demo:build</pre> | See [`pnpm run build`](./packages/demo/README.md#scripts)
8888
| <pre>pnpm&nbsp;run&nbsp;demo:preview</pre> | See [`pnpm run preview`](./packages/demo/README.md#scripts)
8989
| <pre>pnpm&nbsp;run&nbsp;demo:stage</pre> | See [`pnpm run stage`](./packages/demo/README.md#scripts)
90-
| <pre>pnpm&nbsp;run&nbsp;demo:deploy</pre> | See [`pnpm run deploy`](./packages/demo/README.md#scripts)
9190
| <pre>pnpm&nbsp;run&nbsp;demo:fetch</pre> | See [`pnpm run fetch`](./packages/demo/README.md#scripts)
9291

9392
### Internal package: `@prozilla-os/docs`
@@ -97,8 +96,6 @@ ProzillaOS uses the package manager [pnpm](https://pnpm.io/) to run scripts.
9796
| <pre>pnpm&nbsp;run&nbsp;docs:start</pre> | See [`pnpm run start`](./packages/docs/README.md#scripts)
9897
| <pre>pnpm&nbsp;run&nbsp;docs:build</pre> | See [`pnpm run build`](./packages/docs/README.md#scripts)
9998
| <pre>pnpm&nbsp;run&nbsp;docs:preview</pre> | See [`pnpm run preview`](./packages/docs/README.md#scripts)
100-
| <pre>pnpm&nbsp;run&nbsp;docs:stage</pre> | See [`pnpm run stage`](./packages/docs/README.md#scripts)
101-
| <pre>pnpm&nbsp;run&nbsp;docs:deploy</pre> | Build and stage docs, then run `pnpm run publish`.
10299
| <pre>pnpm&nbsp;run&nbsp;docs:generate</pre> | See [`pnpm run generate`](./packages/docs/README.md#scripts)
103100

104101
## Links

package.json

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,26 +12,22 @@
1212
"scripts": {
1313
"preinstall": "npx only-allow pnpm",
1414
"start": "pnpm run demo:start",
15-
"prebuild": "rimraf dist",
16-
"build": "pnpm run packages:build && pnpm run docs:build && pnpm run demo:build",
17-
"predeploy": "rimraf dist",
18-
"deploy": "pnpm run docs:build && pnpm run docs:stage && pnpm run demo:deploy",
19-
"publish": "pnpm vite-node packages/demo/scripts/deploy",
15+
"build": "pnpm -r --sequential build",
16+
"stage": "pnpm vite-node scripts/stageSite.ts",
17+
"predeploy": "rimraf dist && pnpm run stage",
18+
"deploy": "pnpm vite-node scripts/publishSite.ts",
2019
"demo:start": "pnpm --filter @prozilla-os/demo run start",
2120
"demo:build": "pnpm --filter @prozilla-os/demo run build",
2221
"demo:preview": "pnpm --filter @prozilla-os/demo run preview",
2322
"demo:stage": "pnpm --filter @prozilla-os/demo run stage",
24-
"demo:deploy": "pnpm --filter @prozilla-os/demo run deploy",
2523
"demo:fetch": "pnpm --filter @prozilla-os/demo run fetch",
2624
"docs:start": "pnpm --filter @prozilla-os/docs run start",
2725
"docs:build": "pnpm --filter @prozilla-os/docs run build",
28-
"docs:stage": "pnpm --filter @prozilla-os/docs run stage",
2926
"docs:preview": "pnpm --filter @prozilla-os/docs run preview",
30-
"docs:deploy": "pnpm run docs:build && pnpm run docs:stage && pnpm run publish",
3127
"docs:generate": "pnpm --filter @prozilla-os/docs run generate",
3228
"packages:build": "pnpm -r --sequential --filter prozilla-os... build",
3329
"packages:update": "npx changeset && pnpm changeset version",
34-
"packages:release": "pnpm changeset publish && pnpm vite-node scripts/releasePackage.ts"
30+
"packages:release": "pnpm changeset publish && pnpm vite-node scripts/createRelease.ts"
3531
},
3632
"workspaces": [
3733
"packages/*",

packages/demo/README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
| <pre>pnpm&nbsp;run&nbsp;build</pre> | Compile project using TypeScript and bundle all files into the `dist` directory, or the directory specified in config file. This directory can be uploaded to a web server.
2626
| <pre>pnpm&nbsp;run&nbsp;preview</pre> | Start web server with preview of build at [localhost:8080](http://localhost:8080/). Can be useful for validating build before deploying.
2727
| <pre>pnpm&nbsp;run&nbsp;stage</pre> | Execute [stage.ts](./scripts/stage.ts), which stages the build and prepares it for deployment. Script will generate a sitemap, robots.txt and all other necessary files.
28-
| <pre>pnpm&nbsp;run&nbsp;deploy</pre> | Run `pnpm run build && pnpm run stage`, then execute [deploy.ts](../scripts/deploy.ts), which uploads the staged build to GitHub Pages on branch called `gh-pages`. This should then trigger a GitHub Action that deploys the build to production.
2928
| <pre>pnpm&nbsp;run&nbsp;fetch</pre> | Fetch the repository tree using GitHub's API and store it as a JSON file that will be used to populate the virtual drive. More information can be found on the [virtual drive](./features/virtual-drive/README.md) page.
3029

3130
## Links

packages/demo/package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,9 @@
1111
"scripts": {
1212
"start": "vite",
1313
"build": "tsc --project tsconfig.build.json && vite build",
14+
"postbuild": "pnpm run stage",
1415
"preview": "vite preview --port 8080",
1516
"stage": "vite-node scripts/stage",
16-
"predeploy": "pnpm run build && pnpm run stage",
17-
"deploy": "vite-node scripts/deploy",
1817
"fetch": "vite-node scripts/fetchRepository"
1918
},
2019
"repository": {

packages/demo/scripts/deploy.ts

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

packages/demo/scripts/stage.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import { ANSI } from "../../core/src/constants";
44
import { NAME, TAG_LINE } from "../src/config/branding.config";
55
import { BASE_URL, BUILD_DIR, DOMAIN } from "../src/config/deploy.config";
66
import { skin } from "../src/config/skin.config";
7-
import path from "node:path";
87
import { name } from "../package.json";
98

109
const PATHS = {
@@ -134,9 +133,8 @@ function stage() {
134133

135134
files.forEach(([path, generateContent]) => {
136135
const directory = path.substring(0, path.lastIndexOf("/"));
137-
if (directory != "" && !fs.existsSync(directory)){
136+
if (directory != "" && !fs.existsSync(directory))
138137
fs.mkdirSync(directory, { recursive: true });
139-
}
140138

141139
fs.writeFileSync(path, generateContent(), { flag: "w+" });
142140
console.log(`- ${ANSI.fg.cyan}${path}${ANSI.reset}`);
@@ -149,8 +147,6 @@ function stage() {
149147

150148
generate404Page(template);
151149
generateAppPages(template);
152-
153-
fs.cpSync(BUILD_DIR, path.resolve(__dirname, "../../../", BUILD_DIR), { recursive: true });
154150

155151
console.log(`\n${ANSI.fg.green}✓ Staging complete${ANSI.reset}`);
156152
} catch (error) {

packages/docs/README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
| <pre>pnpm&nbsp;run&nbsp;start</pre> | Start VitePress dev server at [localhost:3000](http://localhost:3000/). Changes to module will dynamically be hot-reloaded, so normally there is no need for hard-refreshes.
2525
| <pre>pnpm&nbsp;run&nbsp;build</pre> | Compile project using VitePress and output to the `dist` directory.
2626
| <pre>pnpm&nbsp;run&nbsp;preview</pre> | Start web server with preview of build at [localhost:8080](http://localhost:8080/). Can be useful for validating build before deploying.
27-
| <pre>pnpm&nbsp;run&nbsp;stage</pre> | Execute [stage.ts](./scripts/stage.ts), which copies the `./dist` directory of this package into the `/dist/docs` directory at the root, within the build of the demo site.
2827
| <pre>pnpm&nbsp;run&nbsp;generate</pre> | Generate basic information files in JSON format to use as a base for writing the documentation and output to the `data` directory.
2928

3029
## Links

packages/docs/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
"start": "vitepress --port 3000",
1313
"build": "vitepress build",
1414
"preview": "vitepress preview --port 8080",
15-
"stage": "vite-node scripts/stage",
1615
"generate": "rimraf data && vite-node scripts/generateData"
1716
},
1817
"repository": {

packages/docs/scripts/stage.ts

Lines changed: 0 additions & 22 deletions
This file was deleted.
Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,19 +33,17 @@ const createGitHubRelease = (): void => {
3333
// Write changelog to a temporary file
3434
fs.writeFileSync(changelogFilePath, changelog);
3535

36-
// Push all tags, not recommended
37-
console.log(`${ANSI.fg.yellow}Pushing tags...${ANSI.reset}`);
38-
execSync("git push --tags", {
36+
console.log(`${ANSI.fg.yellow}Pushing tag...${ANSI.reset}`);
37+
execSync(`git push origin tag ${tagName}`, {
3938
stdio: "inherit"
4039
});
4140

42-
// Create a new release
4341
console.log(`${ANSI.fg.yellow}Creating release...${ANSI.reset}`);
4442
execSync(`gh release create ${tagName} --title "${releaseTitle}" --notes-file "${changelogFilePath}"`, {
4543
stdio: "inherit"
4644
});
4745

48-
console.log(`\n${ANSI.fg.green}✓ Release created:${ANSI.reset} ${releaseTitle}`);
46+
console.log(`\n${ANSI.fg.green}✓ Release created: ${ANSI.fg.cyan + releaseTitle + ANSI.reset}`);
4947
} catch (error) {
5048
if ((error as Record<string, string>).stdout) {
5149
console.error((error as Record<string, string>).stdout.toString());
@@ -54,7 +52,7 @@ const createGitHubRelease = (): void => {
5452
console.error((error as Record<string, string>).stderr.toString());
5553
}
5654

57-
console.error(`${ANSI.fg.red}⚠ Failed to create release:${ANSI.reset} ${(error as Error).message}`);
55+
console.error(`\n${ANSI.fg.red}⚠ Failed to create release: ${(error as Error).message}${ANSI.reset}`);
5856
process.exit(1);
5957
} finally {
6058
// Clean up the temporary file

0 commit comments

Comments
 (0)