Skip to content

Commit b542917

Browse files
committed
ci(deploy): build with GitHub Actions
1 parent 0829de0 commit b542917

File tree

8 files changed

+58
-5
lines changed

8 files changed

+58
-5
lines changed

.github/workflows/build.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
---
2+
name: Build artifacts
3+
4+
on: [push]
5+
6+
jobs:
7+
build:
8+
runs-on: ubuntu-latest
9+
10+
steps:
11+
- uses: actions/checkout@v4
12+
- uses: pnpm/action-setup@v4
13+
- uses: actions/setup-node@v4
14+
with:
15+
node-version-file: .node-version
16+
cache: pnpm
17+
- run: pnpm install
18+
- run: pnpm --filter daemon exec turbo build
19+
env:
20+
NODE_ENV: production
21+
- run: pnpm config set --location=project injectWorkspacePackages=true
22+
- run: pnpm install --no-frozen-lockfile
23+
- run: pnpm --filter daemon --prod deploy out/daemon/ && tar -cvf out/daemon.tar out/daemon/
24+
- uses: actions/upload-artifact@v4
25+
with:
26+
name: daemon
27+
path: out/daemon.tar
28+
if-no-files-found: error

apps/daemon/.npmignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
*
2+
!dist/**
3+
!ecosystem.config.cjs

apps/daemon/ecosystem.config.cjs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
/** @type {{apps: import('pm2').StartOptions[]}} */
2+
module.exports = {
3+
apps: [
4+
{
5+
name: "daemon",
6+
script: "./dist/index.js",
7+
args: ["consumer-1", "consumer-2"],
8+
env: {
9+
NODE_ENV: "development",
10+
},
11+
env_production: {
12+
NODE_ENV: "production",
13+
},
14+
},
15+
],
16+
};

apps/daemon/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@
1010
"@luogu-discussion-archive/crawler": "workspace:*",
1111
"@luogu-discussion-archive/logging": "workspace:*",
1212
"@luogu-discussion-archive/redis": "workspace:*",
13-
"@sentry/node": "^10.27.0"
13+
"@sentry/node": "^10.27.0",
14+
"dotenv": "^17.2.3"
1415
},
1516
"devDependencies": {
1617
"@luogu-discussion-archive/typescript-config": "workspace:*",

apps/daemon/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import "dotenv/config";
12
import "./sentry.js";
23

34
import logger from "@luogu-discussion-archive/logging";

packages/database/prisma.config.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@
22
// npm install --save-dev prisma dotenv
33
import "dotenv/config";
44

5-
import { defineConfig, env } from "prisma/config";
5+
import { defineConfig } from "prisma/config";
66

77
export default defineConfig({
88
schema: "prisma/",
99
migrations: {
1010
path: "prisma/migrations",
1111
},
1212
datasource: {
13-
url: env("DATABASE_URL"),
13+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
14+
url: process.env.DATABASE_URL!,
1415
},
1516
});

pnpm-lock.yaml

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pnpm-workspace.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
---
22
packages:
3-
- "apps/*"
4-
- "packages/*"
3+
- apps/*
4+
- packages/*

0 commit comments

Comments
 (0)