Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/canary' into stable
Browse files Browse the repository at this point in the history
  • Loading branch information
Brooooooklyn committed May 7, 2024
2 parents 7accf1c + d76a635 commit 6dd8e9a
Show file tree
Hide file tree
Showing 1,031 changed files with 88,364 additions and 25,645 deletions.
4 changes: 2 additions & 2 deletions .devcontainer/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ corepack prepare yarn@stable --activate
yarn install

# Build Server Dependencies
yarn workspace @affine/storage build
yarn workspace @affine/server-native build

# Create database
yarn workspace @affine/server prisma db push

# Create user username: affine, password: affine
echo "INSERT INTO \"users\"(\"id\",\"name\",\"email\",\"email_verified\",\"created_at\",\"password\") VALUES('99f3ad04-7c9b-441e-a6db-79f73aa64db9','affine','affine@affine.pro','2024-02-26 15:54:16.974','2024-02-26 15:54:16.974+00','\$argon2id\$v=19\$m=19456,t=2,p=1\$esDS3QCHRH0Kmeh87YPm5Q\$9S+jf+xzw2Hicj6nkWltvaaaXX3dQIxAFwCfFa9o38A');" | yarn workspace @affine/server prisma db execute --stdin
echo "INSERT INTO \"users\"(\"id\",\"name\",\"email\",\"email_verified\",\"created_at\",\"password\") VALUES('99f3ad04-7c9b-441e-a6db-79f73aa64db9','affine','affine@affine.pro','2024-02-26 15:54:16.974','2024-02-26 15:54:16.974+00','\$argon2id\$v=19\$m=19456,t=2,p=1\$esDS3QCHRH0Kmeh87YPm5Q\$9S+jf+xzw2Hicj6nkWltvaaaXX3dQIxAFwCfFa9o38A');" | yarn workspace @affine/server prisma db execute --stdin
2 changes: 1 addition & 1 deletion .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ static
web-static
public
packages/frontend/i18n/src/i18n-generated.ts
packages/frontend/templates/edgeless-templates.gen.ts
packages/frontend/templates/*.gen.ts
5 changes: 1 addition & 4 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -48,14 +48,11 @@ const allPackages = [
'packages/frontend/i18n',
'packages/frontend/native',
'packages/frontend/templates',
'packages/frontend/workspace-impl',
'packages/common/debug',
'packages/common/env',
'packages/common/infra',
'packages/common/theme',
'packages/common/y-indexeddb',
'tools/cli',
'tests/storybook',
];

/**
Expand Down Expand Up @@ -234,7 +231,7 @@ const config = {
},
},
...allPackages.map(pkg => ({
files: [`${pkg}/src/**/*.ts`, `${pkg}/src/**/*.tsx`],
files: [`${pkg}/src/**/*.ts`, `${pkg}/src/**/*.tsx`, `${pkg}/**/*.mjs`],
rules: {
'@typescript-eslint/no-restricted-imports': [
'error',
Expand Down
10 changes: 8 additions & 2 deletions .github/actions/deploy/deploy.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,10 @@ const {
R2_ACCOUNT_ID,
R2_ACCESS_KEY_ID,
R2_SECRET_ACCESS_KEY,
ENABLE_CAPTCHA,
CAPTCHA_TURNSTILE_SECRET,
COPILOT_OPENAI_API_KEY,
COPILOT_FAL_API_KEY,
COPILOT_UNSPLASH_API_KEY,
MAILER_SENDER,
MAILER_USER,
MAILER_PASSWORD,
Expand Down Expand Up @@ -97,8 +99,12 @@ const createHelmCommand = ({ isDryRun }) => {
`--set graphql.replicaCount=${graphqlReplicaCount}`,
`--set-string graphql.image.tag="${imageTag}"`,
`--set graphql.app.host=${host}`,
`--set graphql.app.captcha.enabled=${ENABLE_CAPTCHA}`,
`--set graphql.app.captcha.enabled=true`,
`--set-string graphql.app.captcha.turnstile.secret="${CAPTCHA_TURNSTILE_SECRET}"`,
`--set graphql.app.copilot.enabled=true`,
`--set-string graphql.app.copilot.openai.key="${COPILOT_OPENAI_API_KEY}"`,
`--set-string graphql.app.copilot.fal.key="${COPILOT_FAL_API_KEY}"`,
`--set-string graphql.app.copilot.unsplash.key="${COPILOT_UNSPLASH_API_KEY}"`,
`--set graphql.app.objectStorage.r2.enabled=true`,
`--set-string graphql.app.objectStorage.r2.accountId="${R2_ACCOUNT_ID}"`,
`--set-string graphql.app.objectStorage.r2.accessKeyId="${R2_ACCESS_KEY_ID}"`,
Expand Down
3 changes: 3 additions & 0 deletions .github/deployment/self-host/compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@ services:
- NODE_ENV=production
- AFFINE_ADMIN_EMAIL=${AFFINE_ADMIN_EMAIL}
- AFFINE_ADMIN_PASSWORD=${AFFINE_ADMIN_PASSWORD}
# Telemetry allows us to collect data on how you use the affine. This data will helps us improve the app and provide better features.
# Uncomment next line if you wish to quit telemetry.
# - TELEMETRY_ENABLE=false
redis:
image: redis
container_name: affine_redis
Expand Down
11 changes: 11 additions & 0 deletions .github/helm/affine/charts/graphql/templates/copilot-secret.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{{- if .Values.app.copilot.enabled -}}
apiVersion: v1
kind: Secret
metadata:
name: "{{ .Values.app.copilot.secretName }}"
type: Opaque
data:
openaiSecret: {{ .Values.app.copilot.openai.key | b64enc }}
falSecret: {{ .Values.app.copilot.fal.key | b64enc }}
unsplashSecret: {{ .Values.app.copilot.unsplash.key | b64enc }}
{{- end }}
17 changes: 17 additions & 0 deletions .github/helm/affine/charts/graphql/templates/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,23 @@ spec:
name: "{{ .Values.app.captcha.secretName }}"
key: turnstileSecret
{{ end }}
{{ if .Values.app.copilot.enabled }}
- name: COPILOT_OPENAI_API_KEY
valueFrom:
secretKeyRef:
name: "{{ .Values.app.copilot.secretName }}"
key: openaiSecret
- name: COPILOT_FAL_API_KEY
valueFrom:
secretKeyRef:
name: "{{ .Values.app.copilot.secretName }}"
key: falSecret
- name: COPILOT_UNSPLASH_API_KEY
valueFrom:
secretKeyRef:
name: "{{ .Values.app.copilot.secretName }}"
key: unsplashSecret
{{ end }}
{{ if .Values.app.oauth.google.enabled }}
- name: OAUTH_GOOGLE_ENABLED
value: "true"
Expand Down
5 changes: 5 additions & 0 deletions .github/helm/affine/charts/graphql/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,11 @@ app:
secretName: captcha
turnstile:
secret: ''
copilot:
enable: false
secretName: copilot
openai:
key: ''
objectStorage:
r2:
enabled: false
Expand Down
2 changes: 2 additions & 0 deletions .github/helm/affine/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ graphql:
service:
type: ClusterIP
port: 3000
annotations:
cloud.google.com/backend-config: '{"default": "affine-backendconfig"}'

sync:
service:
Expand Down
14 changes: 2 additions & 12 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,6 @@ mod:plugin-cli:
- any-glob-to-any-file:
- 'tools/plugin-cli/**/*'

mod:workspace-impl:
- changed-files:
- any-glob-to-any-file:
- 'packages/frontend/workspace-impl/**/*'

mod:i18n:
- changed-files:
- any-glob-to-any-file:
Expand All @@ -49,10 +44,10 @@ mod:component:
- any-glob-to-any-file:
- 'packages/frontend/component/**/*'

mod:storage:
mod:server-native:
- changed-files:
- any-glob-to-any-file:
- 'packages/backend/storage/**/*'
- 'packages/backend/native/**/*'

mod:native:
- changed-files:
Expand All @@ -74,11 +69,6 @@ rust:
- '**/rust-toolchain.toml'
- '**/rustfmt.toml'

package:y-indexeddb:
- changed-files:
- any-glob-to-any-file:
- 'packages/common/y-indexeddb/**/*'

app:core:
- changed-files:
- any-glob-to-any-file:
Expand Down
39 changes: 20 additions & 19 deletions .github/workflows/build-server-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ jobs:
SHOULD_REPORT_TRACE: false
PUBLIC_PATH: '/'
SELF_HOSTED: true
MIXPANEL_TOKEN: ${{ secrets.MIXPANEL_TOKEN }}
- name: Download selfhost fonts
run: node ./scripts/download-blocksuite-fonts.mjs
- name: Upload web artifact
Expand All @@ -65,18 +66,18 @@ jobs:
path: ./packages/frontend/web/dist
if-no-files-found: error

build-storage:
name: Build Storage - ${{ matrix.targets.name }}
build-server-native:
name: Build Server native - ${{ matrix.targets.name }}
runs-on: ubuntu-latest
strategy:
matrix:
targets:
- name: x86_64-unknown-linux-gnu
file: storage.node
file: server-native.node
- name: aarch64-unknown-linux-gnu
file: storage.arm64.node
file: server-native.arm64.node
- name: armv7-unknown-linux-gnueabihf
file: storage.armv7.node
file: server-native.armv7.node

steps:
- uses: actions/checkout@v4
Expand All @@ -87,18 +88,18 @@ jobs:
uses: ./.github/actions/setup-node
with:
electron-install: false
extra-flags: workspaces focus @affine/storage
extra-flags: workspaces focus @affine/server-native
- name: Build Rust
uses: ./.github/actions/build-rust
with:
target: ${{ matrix.targets.name }}
package: '@affine/storage'
package: '@affine/server-native'
nx_token: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
- name: Upload ${{ matrix.targets.file }}
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.targets.file }}
path: ./packages/backend/storage/storage.node
path: ./packages/backend/native/server-native.node
if-no-files-found: error

build-docker:
Expand All @@ -107,33 +108,33 @@ jobs:
needs:
- build-server
- build-web-selfhost
- build-storage
- build-server-native
steps:
- uses: actions/checkout@v4
- name: Download server dist
uses: actions/download-artifact@v4
with:
name: server-dist
path: ./packages/backend/server/dist
- name: Download storage.node
- name: Download server-native.node
uses: actions/download-artifact@v4
with:
name: storage.node
name: server-native.node
path: ./packages/backend/server
- name: Download storage.node arm64
- name: Download server-native.node arm64
uses: actions/download-artifact@v4
with:
name: storage.arm64.node
path: ./packages/backend/storage
- name: Download storage.node arm64
name: server-native.arm64.node
path: ./packages/backend/native
- name: Download server-native.node arm64
uses: actions/download-artifact@v4
with:
name: storage.armv7.node
name: server-native.armv7.node
path: .
- name: move storage files
- name: move server-native files
run: |
mv ./packages/backend/storage/storage.node ./packages/backend/server/storage.arm64.node
mv storage.node ./packages/backend/server/storage.armv7.node
mv ./packages/backend/native/server-native.node ./packages/backend/server/server-native.arm64.node
mv server-native.node ./packages/backend/server/server-native.armv7.node
- name: Setup env
run: |
echo "GIT_SHORT_HASH=$(git rev-parse --short HEAD)" >> "$GITHUB_ENV"
Expand Down
29 changes: 14 additions & 15 deletions .github/workflows/build-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -241,8 +241,8 @@ jobs:
path: ./packages/frontend/native/${{ steps.filename.outputs.filename }}
if-no-files-found: error

build-storage:
name: Build Storage
build-server-native:
name: Build Server native
runs-on: ubuntu-latest
env:
CARGO_PROFILE_RELEASE_DEBUG: '1'
Expand All @@ -251,19 +251,19 @@ jobs:
- name: Setup Node.js
uses: ./.github/actions/setup-node
with:
extra-flags: workspaces focus @affine/storage
extra-flags: workspaces focus @affine/server-native
electron-install: false
- name: Build Rust
uses: ./.github/actions/build-rust
with:
target: 'x86_64-unknown-linux-gnu'
package: '@affine/storage'
package: '@affine/server-native'
nx_token: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
- name: Upload storage.node
- name: Upload server-native.node
uses: actions/upload-artifact@v4
with:
name: storage.node
path: ./packages/backend/storage/storage.node
name: server-native.node
path: ./packages/backend/native/server-native.node
if-no-files-found: error

build-web:
Expand All @@ -283,7 +283,7 @@ jobs:
env:
DISTRIBUTION: 'desktop'
- name: zip web
run: tar -czf dist.tar.gz --directory=packages/frontend/electron/dist .
run: tar -czf dist.tar.gz --directory=packages/frontend/electron/renderer/dist .
- name: Upload web artifact
uses: actions/upload-artifact@v4
with:
Expand All @@ -294,7 +294,7 @@ jobs:
server-test:
name: Server Test
runs-on: ubuntu-latest
needs: build-storage
needs: build-server-native
env:
NODE_ENV: test
DISTRIBUTION: browser
Expand Down Expand Up @@ -324,10 +324,10 @@ jobs:
electron-install: false
full-cache: true

- name: Download storage.node
- name: Download server-native.node
uses: actions/download-artifact@v4
with:
name: storage.node
name: server-native.node
path: ./packages/backend/server

- name: Initialize database
Expand Down Expand Up @@ -383,7 +383,7 @@ jobs:
yarn workspace @affine/electron build:dev
xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- yarn workspace @affine-test/affine-desktop-cloud e2e
needs:
- build-storage
- build-server-native
- build-native
services:
postgres:
Expand Down Expand Up @@ -411,10 +411,10 @@ jobs:
playwright-install: true
hard-link-nm: false

- name: Download storage.node
- name: Download server-native.node
uses: actions/download-artifact@v4
with:
name: storage.node
name: server-native.node
path: ./packages/backend/server

- name: Download affine.linux-x64-gnu.node
Expand Down Expand Up @@ -546,7 +546,6 @@ jobs:
run: yarn workspace @affine/electron make --platform=linux --arch=x64
if: ${{ matrix.spec.target == 'x86_64-unknown-linux-gnu' }}
env:
SKIP_PLUGIN_BUILD: 1
SKIP_WEB_BUILD: 1
HOIST_NODE_MODULES: 1

Expand Down

0 comments on commit 6dd8e9a

Please sign in to comment.