This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | Type | Update | |---|---|---|---|---|---|---|---| | [@chromatic-com/storybook](https://redirect.github.com/chromaui/addon-visual-tests) | [`1.7.0` -> `1.8.0`](https://renovatebot.com/diffs/npm/@chromatic-com%2fstorybook/1.7.0/1.8.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@commitlint/cli](https://commitlint.js.org/) ([source](https://redirect.github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli)) | [`19.4.0` -> `19.4.1`](https://renovatebot.com/diffs/npm/@commitlint%2fcli/19.4.0/19.4.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@commitlint/config-conventional](https://commitlint.js.org/) ([source](https://redirect.github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional)) | [`19.2.2` -> `19.4.1`](https://renovatebot.com/diffs/npm/@commitlint%2fconfig-conventional/19.2.2/19.4.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@marsidev/react-turnstile](https://redirect.github.com/marsidev/react-turnstile) | [`1.0.0` -> `1.0.1`](https://renovatebot.com/diffs/npm/@marsidev%2freact-turnstile/1.0.0/1.0.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [@napi-rs/simple-git](https://redirect.github.com/Brooooooklyn/simple-git) | [`0.1.18` -> `0.1.19`](https://renovatebot.com/diffs/npm/@napi-rs%2fsimple-git/0.1.18/0.1.19) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@napi-rs/simple-git](https://redirect.github.com/Brooooooklyn/simple-git) | [`0.1.18` -> `0.1.19`](https://renovatebot.com/diffs/npm/@napi-rs%2fsimple-git/0.1.18/0.1.19) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [@nx/vite](https://nx.dev) ([source](https://redirect.github.com/nrwl/nx/tree/HEAD/packages/vite)) | [`19.6.2` -> `19.6.4`](https://renovatebot.com/diffs/npm/@nx%2fvite/19.6.2/19.6.4) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@opentelemetry/core](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js)) | [`1.25.1` -> `1.26.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2fcore/1.25.1/1.26.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@opentelemetry/exporter-prometheus](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-exporter-prometheus) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js)) | [`^0.52.0` -> `^0.53.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2fexporter-prometheus/0.52.1/0.53.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@opentelemetry/exporter-zipkin](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-exporter-zipkin) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js)) | [`1.25.1` -> `1.26.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2fexporter-zipkin/1.25.1/1.26.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@opentelemetry/instrumentation](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js)) | [`^0.52.0` -> `^0.53.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2finstrumentation/0.52.1/0.53.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@opentelemetry/instrumentation-graphql](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/tree/main/plugins/node/opentelemetry-instrumentation-graphql#readme) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib)) | [`^0.42.0` -> `^0.43.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2finstrumentation-graphql/0.42.0/0.43.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@opentelemetry/instrumentation-http](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation-http) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js)) | [`^0.52.0` -> `^0.53.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2finstrumentation-http/0.52.1/0.53.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@opentelemetry/instrumentation-ioredis](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/tree/main/plugins/node/opentelemetry-instrumentation-ioredis#readme) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib)) | [`^0.42.0` -> `^0.43.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2finstrumentation-ioredis/0.42.0/0.43.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@opentelemetry/instrumentation-nestjs-core](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/tree/main/plugins/node/opentelemetry-instrumentation-nestjs-core#readme) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib)) | [`^0.39.0` -> `^0.40.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2finstrumentation-nestjs-core/0.39.0/0.40.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@opentelemetry/instrumentation-socket.io](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/tree/main/plugins/node/instrumentation-socket.io#readme) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib)) | [`^0.41.0` -> `^0.42.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2finstrumentation-socket.io/0.41.0/0.42.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@opentelemetry/resources](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js)) | [`1.25.1` -> `1.26.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2fresources/1.25.1/1.26.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@opentelemetry/sdk-metrics](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/packages/sdk-metrics) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js)) | [`1.25.1` -> `1.26.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2fsdk-metrics/1.25.1/1.26.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@opentelemetry/sdk-node](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-sdk-node) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js)) | [`^0.52.0` -> `^0.53.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2fsdk-node/0.52.1/0.53.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@opentelemetry/sdk-trace-node](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-node) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js)) | [`1.25.1` -> `1.26.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2fsdk-trace-node/1.25.1/1.26.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@opentelemetry/semantic-conventions](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js)) | [`1.26.0` -> `1.27.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2fsemantic-conventions/1.26.0/1.27.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@prisma/client](https://www.prisma.io) ([source](https://redirect.github.com/prisma/prisma/tree/HEAD/packages/client)) | [`5.18.0` -> `5.19.1`](https://renovatebot.com/diffs/npm/@prisma%2fclient/5.18.0/5.19.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@prisma/instrumentation](https://www.prisma.io) ([source](https://redirect.github.com/prisma/prisma/tree/HEAD/packages/instrumentation)) | [`5.18.0` -> `5.19.1`](https://renovatebot.com/diffs/npm/@prisma%2finstrumentation/5.18.0/5.19.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@sentry/electron](https://redirect.github.com/getsentry/sentry-electron) | [`5.3.0` -> `5.4.0`](https://renovatebot.com/diffs/npm/@sentry%2felectron/5.3.0/5.4.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@sentry/esbuild-plugin](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/tree/main/packages/esbuild-plugin) ([source](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins)) | [`2.22.2` -> `2.22.3`](https://renovatebot.com/diffs/npm/@sentry%2fesbuild-plugin/2.22.2/2.22.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@sentry/react](https://redirect.github.com/getsentry/sentry-javascript/tree/master/packages/react) ([source](https://redirect.github.com/getsentry/sentry-javascript)) | [`8.26.0` -> `8.27.0`](https://renovatebot.com/diffs/npm/@sentry%2freact/8.26.0/8.27.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@sentry/react](https://redirect.github.com/getsentry/sentry-javascript/tree/master/packages/react) ([source](https://redirect.github.com/getsentry/sentry-javascript)) | [`8.26.0` -> `8.27.0`](https://renovatebot.com/diffs/npm/@sentry%2freact/8.26.0/8.27.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@sentry/webpack-plugin](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/tree/main/packages/webpack-plugin) ([source](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins)) | [`2.22.2` -> `2.22.3`](https://renovatebot.com/diffs/npm/@sentry%2fwebpack-plugin/2.22.2/2.22.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@swc/core](https://swc.rs) ([source](https://redirect.github.com/swc-project/swc)) | [`1.7.14` -> `1.7.23`](https://renovatebot.com/diffs/npm/@swc%2fcore/1.7.14/1.7.23) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@tanstack/react-table](https://tanstack.com/table) ([source](https://redirect.github.com/TanStack/table/tree/HEAD/packages/react-table)) | [`8.20.1` -> `8.20.5`](https://renovatebot.com/diffs/npm/@tanstack%2freact-table/8.20.1/8.20.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [@testing-library/react](https://redirect.github.com/testing-library/react-testing-library) | [`16.0.0` -> `16.0.1`](https://renovatebot.com/diffs/npm/@testing-library%2freact/16.0.0/16.0.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@types/eslint](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/eslint) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/eslint)) | [`8.56.11` -> `8.56.12`](https://renovatebot.com/diffs/npm/@types%2feslint/8.56.11/8.56.12) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@types/mixpanel-browser](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/mixpanel-browser) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mixpanel-browser)) | [`2.49.1` -> `2.50.0`](https://renovatebot.com/diffs/npm/@types%2fmixpanel-browser/2.49.1/2.50.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | [`20.16.1` -> `20.16.3`](https://renovatebot.com/diffs/npm/@types%2fnode/20.16.1/20.16.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@types/react](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react)) | [`18.3.4` -> `18.3.5`](https://renovatebot.com/diffs/npm/@types%2freact/18.3.4/18.3.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [changelogithub](https://redirect.github.com/antfu/changelogithub) | [`0.13.9` -> `0.13.10`](https://renovatebot.com/diffs/npm/changelogithub/0.13.9/0.13.10) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [commitlint](https://commitlint.js.org/) ([source](https://redirect.github.com/conventional-changelog/commitlint/tree/HEAD/@alias/commitlint)) | [`19.4.0` -> `19.4.1`](https://renovatebot.com/diffs/npm/commitlint/19.4.0/19.4.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [fast-xml-parser](https://redirect.github.com/NaturalIntelligence/fast-xml-parser) | [`4.4.1` -> `4.5.0`](https://renovatebot.com/diffs/npm/fast-xml-parser/4.4.1/4.5.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [happy-dom](https://redirect.github.com/capricorn86/happy-dom) | [`15.0.0` -> `15.7.3`](https://renovatebot.com/diffs/npm/happy-dom/15.0.0/15.7.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [http-proxy-middleware](https://redirect.github.com/chimurai/http-proxy-middleware) | [`3.0.0` -> `3.0.1`](https://renovatebot.com/diffs/npm/http-proxy-middleware/3.0.0/3.0.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [jotai-effect](https://redirect.github.com/jotaijs/jotai-effect) | [`1.0.2` -> `1.0.3`](https://renovatebot.com/diffs/npm/jotai-effect/1.0.2/1.0.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [lint-staged](https://redirect.github.com/lint-staged/lint-staged) | [`15.2.9` -> `15.2.10`](https://renovatebot.com/diffs/npm/lint-staged/15.2.9/15.2.10) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [lucide-react](https://lucide.dev) ([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react)) | [`^0.435.0` -> `^0.438.0`](https://renovatebot.com/diffs/npm/lucide-react/0.435.0/0.438.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [marked](https://marked.js.org) ([source](https://redirect.github.com/markedjs/marked)) | [`14.0.0` -> `14.1.0`](https://renovatebot.com/diffs/npm/marked/14.0.0/14.1.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [mixpanel-browser](https://redirect.github.com/mixpanel/mixpanel-js) | [`2.55.0` -> `2.55.1`](https://renovatebot.com/diffs/npm/mixpanel-browser/2.55.0/2.55.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [msw](https://mswjs.io) ([source](https://redirect.github.com/mswjs/msw)) | [`2.3.5` -> `2.4.1`](https://renovatebot.com/diffs/npm/msw/2.3.5/2.4.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [nestjs-throttler-storage-redis](https://redirect.github.com/kkoomen/nestjs-throttler-storage-redis) | [`0.5.0` -> `0.5.1`](https://renovatebot.com/diffs/npm/nestjs-throttler-storage-redis/0.5.0/0.5.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [nx](https://nx.dev) ([source](https://redirect.github.com/nrwl/nx/tree/HEAD/packages/nx)) | [`19.6.2` -> `19.6.4`](https://renovatebot.com/diffs/npm/nx/19.6.2/19.6.4) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [openai](https://redirect.github.com/openai/openai-node) | [`4.56.0` -> `4.57.0`](https://renovatebot.com/diffs/npm/openai/4.56.0/4.57.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [postcss](https://postcss.org/) ([source](https://redirect.github.com/postcss/postcss)) | [`8.4.41` -> `8.4.44`](https://renovatebot.com/diffs/npm/postcss/8.4.41/8.4.44) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [prisma](https://www.prisma.io) ([source](https://redirect.github.com/prisma/prisma/tree/HEAD/packages/cli)) | [`5.18.0` -> `5.19.1`](https://renovatebot.com/diffs/npm/prisma/5.18.0/5.19.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [react-hook-form](https://www.react-hook-form.com) ([source](https://redirect.github.com/react-hook-form/react-hook-form)) | [`7.52.2` -> `7.53.0`](https://renovatebot.com/diffs/npm/react-hook-form/7.52.2/7.53.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [react-resizable-panels](https://redirect.github.com/bvaughn/react-resizable-panels) | [`2.1.1` -> `2.1.2`](https://renovatebot.com/diffs/npm/react-resizable-panels/2.1.1/2.1.2) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [react-virtuoso](https://virtuoso.dev/) ([source](https://redirect.github.com/petyosi/react-virtuoso)) | [`4.10.1` -> `4.10.2`](https://renovatebot.com/diffs/npm/react-virtuoso/4.10.1/4.10.2) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [serde](https://serde.rs) ([source](https://redirect.github.com/serde-rs/serde)) | `1.0.208` -> `1.0.209` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch | | [serde_json](https://redirect.github.com/serde-rs/json) | `1.0.125` -> `1.0.127` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch | | [ses](https://redirect.github.com/Agoric/SES-shim/tree/master/packages/ses#readme) ([source](https://redirect.github.com/endojs/endo/tree/HEAD/packages/ses)) | [`1.7.0` -> `1.8.0`](https://renovatebot.com/diffs/npm/ses/1.7.0/1.8.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [shadcn-ui](https://redirect.github.com/shadcn/ui) ([source](https://redirect.github.com/shadcn/ui/tree/HEAD/packages/cli)) | [`^0.8.0` -> `^0.9.0`](https://renovatebot.com/diffs/npm/shadcn-ui/0.8.0/0.9.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [slackapi/slack-github-action](https://redirect.github.com/slackapi/slack-github-action) | `v1.26.0` -> `v1.27.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | action | minor | | [storybook-dark-mode](https://redirect.github.com/hipstersmoothie/storybook-dark-mode) | [`4.0.1` -> `4.0.2`](https://renovatebot.com/diffs/npm/storybook-dark-mode/4.0.1/4.0.2) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [stripe](https://redirect.github.com/stripe/stripe-node) | [`16.8.0` -> `16.9.0`](https://renovatebot.com/diffs/npm/stripe/16.8.0/16.9.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [tokio](https://tokio.rs) ([source](https://redirect.github.com/tokio-rs/tokio)) | `1.39.3` -> `1.40.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dev-dependencies | minor | | [tokio](https://tokio.rs) ([source](https://redirect.github.com/tokio-rs/tokio)) | `1.39.3` -> `1.40.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | minor | | [vite-plugin-dts](https://redirect.github.com/qmhc/vite-plugin-dts) | [`4.0.3` -> `4.1.0`](https://renovatebot.com/diffs/npm/vite-plugin-dts/4.0.3/4.1.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [vitest-mock-extended](https://redirect.github.com/eratio08/vitest-mock-extended) | [`2.0.0` -> `2.0.2`](https://renovatebot.com/diffs/npm/vitest-mock-extended/2.0.0/2.0.2) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [wrangler](https://redirect.github.com/cloudflare/workers-sdk) ([source](https://redirect.github.com/cloudflare/workers-sdk/tree/HEAD/packages/wrangler)) | [`3.72.2` -> `3.73.0`](https://renovatebot.com/diffs/npm/wrangler/3.72.2/3.73.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [yarn](https://redirect.github.com/yarnpkg/berry) ([source](https://redirect.github.com/yarnpkg/berry/tree/HEAD/packages/yarnpkg-cli)) | [`4.4.0` -> `4.4.1`](https://renovatebot.com/diffs/npm/yarn/4.4.0/4.4.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | packageManager | patch | --- ### Release Notes <details> <summary>chromaui/addon-visual-tests (@​chromatic-com/storybook)</summary> ### [`v1.8.0`](https://redirect.github.com/chromaui/addon-visual-tests/blob/HEAD/CHANGELOG.md#v180-Thu-Aug-29-2024) [Compare Source](https://redirect.github.com/chromaui/addon-visual-tests/compare/v1.7.0...v1.8.0) ##### 🚀 Enhancement - Add `paramKey: "chromatic"` to allow disabling the VTA panel through story parameters [#​334](https://redirect.github.com/chromaui/addon-visual-tests/pull/334) ([@​mellm0](https://redirect.github.com/mellm0)) ##### Authors: 1 - Mell (
367 lines
14 KiB
YAML
367 lines
14 KiB
YAML
name: Deploy
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
flavor:
|
|
description: 'Select what enverionment to deploy to'
|
|
type: choice
|
|
default: canary
|
|
options:
|
|
- canary
|
|
- beta
|
|
- stable
|
|
- internal
|
|
env:
|
|
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
|
|
|
|
permissions:
|
|
contents: 'write'
|
|
id-token: 'write'
|
|
packages: 'write'
|
|
|
|
jobs:
|
|
output-prev-version:
|
|
name: Output previous version
|
|
runs-on: ubuntu-latest
|
|
environment: ${{ github.event.inputs.flavor }}
|
|
outputs:
|
|
prev: ${{ steps.print.outputs.version }}
|
|
namespace: ${{ steps.print.outputs.namespace }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Auth to Cluster
|
|
uses: './.github/actions/cluster-auth'
|
|
with:
|
|
gcp-project-number: ${{ secrets.GCP_PROJECT_NUMBER }}
|
|
gcp-project-id: ${{ secrets.GCP_PROJECT_ID }}
|
|
service-account: ${{ secrets.GCP_HELM_DEPLOY_SERVICE_ACCOUNT }}
|
|
cluster-name: ${{ secrets.GCP_CLUSTER_NAME }}
|
|
cluster-location: ${{ secrets.GCP_CLUSTER_LOCATION }}
|
|
- name: Output previous version
|
|
id: print
|
|
run: |
|
|
namespace=""
|
|
if [ "${{ github.event.inputs.flavor }}" = "canary" ]; then
|
|
namespace="dev"
|
|
elif [ "${{ github.event.inputs.flavor }}" = "beta" ]; then
|
|
namespace="beta"
|
|
elif [ "${{ github.event.inputs.flavor }}" = "stable" ]; then
|
|
namespace="production"
|
|
else
|
|
echo "Invalid flavor: ${{ github.event.inputs.flavor }}"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Namespace set to: $namespace"
|
|
|
|
# Get the previous version from the deployment
|
|
prev_version=$(kubectl get deployment -n $namespace affine-graphql -o=jsonpath='{.spec.template.spec.containers[0].image}' | awk -F '-' '{print $3}')
|
|
|
|
echo "Previous version: $prev_version"
|
|
echo "version=$prev_version" >> $GITHUB_OUTPUT
|
|
echo "namesapce=$namespace" >> $GITHUB_OUTPUT
|
|
|
|
build-server-image:
|
|
name: Build Server Image
|
|
uses: ./.github/workflows/build-server-image.yml
|
|
with:
|
|
flavor: ${{ github.event.inputs.flavor }}
|
|
|
|
build-web:
|
|
name: Build @affine/web
|
|
runs-on: ubuntu-latest
|
|
environment: ${{ github.event.inputs.flavor }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Setup Version
|
|
id: version
|
|
uses: ./.github/actions/setup-version
|
|
- name: Setup Node.js
|
|
uses: ./.github/actions/setup-node
|
|
- name: Build Core
|
|
run: yarn nx build @affine/web --skip-nx-cache
|
|
env:
|
|
R2_ACCOUNT_ID: ${{ secrets.R2_ACCOUNT_ID }}
|
|
R2_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }}
|
|
R2_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }}
|
|
BUILD_TYPE: ${{ github.event.inputs.flavor }}
|
|
CAPTCHA_SITE_KEY: ${{ secrets.CAPTCHA_SITE_KEY }}
|
|
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
|
|
SENTRY_PROJECT: 'affine-web'
|
|
SENTRY_RELEASE: ${{ steps.version.outputs.APP_VERSION }}
|
|
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
|
|
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
|
|
PERFSEE_TOKEN: ${{ secrets.PERFSEE_TOKEN }}
|
|
MIXPANEL_TOKEN: ${{ secrets.MIXPANEL_TOKEN }}
|
|
- name: Upload web artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: web
|
|
path: ./packages/frontend/web/dist
|
|
if-no-files-found: error
|
|
|
|
build-admin:
|
|
name: Build @affine/admin
|
|
runs-on: ubuntu-latest
|
|
environment: ${{ github.event.inputs.flavor }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Setup Version
|
|
id: version
|
|
uses: ./.github/actions/setup-version
|
|
- name: Setup Node.js
|
|
uses: ./.github/actions/setup-node
|
|
- name: Build Admin
|
|
run: yarn nx build @affine/admin --skip-nx-cache
|
|
env:
|
|
R2_ACCOUNT_ID: ${{ secrets.R2_ACCOUNT_ID }}
|
|
R2_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }}
|
|
R2_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }}
|
|
BUILD_TYPE: ${{ github.event.inputs.flavor }}
|
|
CAPTCHA_SITE_KEY: ${{ secrets.CAPTCHA_SITE_KEY }}
|
|
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
|
|
SENTRY_PROJECT: 'affine-admin'
|
|
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
|
|
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
|
|
PERFSEE_TOKEN: ${{ secrets.PERFSEE_TOKEN }}
|
|
MIXPANEL_TOKEN: ${{ secrets.MIXPANEL_TOKEN }}
|
|
- name: Upload admin artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: admin
|
|
path: ./packages/frontend/admin/dist
|
|
if-no-files-found: error
|
|
|
|
build-mobile:
|
|
name: Build @affine/mobile
|
|
runs-on: ubuntu-latest
|
|
environment: ${{ github.event.inputs.flavor }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Setup Version
|
|
id: version
|
|
uses: ./.github/actions/setup-version
|
|
- name: Setup Node.js
|
|
uses: ./.github/actions/setup-node
|
|
- name: Build Mobile
|
|
run: yarn nx build @affine/mobile --skip-nx-cache
|
|
env:
|
|
R2_ACCOUNT_ID: ${{ secrets.R2_ACCOUNT_ID }}
|
|
R2_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }}
|
|
R2_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }}
|
|
BUILD_TYPE: ${{ github.event.inputs.flavor }}
|
|
CAPTCHA_SITE_KEY: ${{ secrets.CAPTCHA_SITE_KEY }}
|
|
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
|
|
SENTRY_PROJECT: 'affine-mobile'
|
|
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
|
|
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
|
|
PERFSEE_TOKEN: ${{ secrets.PERFSEE_TOKEN }}
|
|
MIXPANEL_TOKEN: ${{ secrets.MIXPANEL_TOKEN }}
|
|
- name: Upload mobile artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: mobile
|
|
path: ./packages/frontend/mobile/dist
|
|
if-no-files-found: error
|
|
|
|
build-frontend-image:
|
|
name: Build Frontend Image
|
|
runs-on: ubuntu-latest
|
|
needs:
|
|
- build-web
|
|
- build-admin
|
|
- build-mobile
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Download web artifact
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: web
|
|
path: ./packages/frontend/web/dist
|
|
- name: Download admin artifact
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: admin
|
|
path: ./packages/frontend/admin/dist
|
|
- name: Download mobile artifact
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: mobile
|
|
path: ./packages/frontend/mobile/dist
|
|
- name: Setup env
|
|
run: |
|
|
echo "GIT_SHORT_HASH=$(git rev-parse --short HEAD)" >> "$GITHUB_ENV"
|
|
if [ -z "${{ inputs.flavor }}" ]
|
|
then
|
|
echo "RELEASE_FLAVOR=canary" >> "$GITHUB_ENV"
|
|
else
|
|
echo "RELEASE_FLAVOR=${{ inputs.flavor }}" >> "$GITHUB_ENV"
|
|
fi
|
|
- name: Login to GitHub Container Registry
|
|
uses: docker/login-action@v3
|
|
with:
|
|
registry: ghcr.io
|
|
logout: false
|
|
username: ${{ github.actor }}
|
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
- name: Set up QEMU
|
|
uses: docker/setup-qemu-action@v3
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v3
|
|
- name: Build front Dockerfile
|
|
uses: docker/build-push-action@v6
|
|
with:
|
|
context: .
|
|
push: true
|
|
pull: true
|
|
platforms: linux/amd64,linux/arm64
|
|
provenance: true
|
|
file: .github/deployment/front/Dockerfile
|
|
tags: ghcr.io/toeverything/affine-front:${{env.RELEASE_FLAVOR}}-${{ env.GIT_SHORT_HASH }},ghcr.io/toeverything/affine-front:${{env.RELEASE_FLAVOR}}
|
|
|
|
deploy:
|
|
name: Deploy to cluster
|
|
if: ${{ github.event_name == 'workflow_dispatch' }}
|
|
environment: ${{ github.event.inputs.flavor }}
|
|
needs:
|
|
- build-frontend-image
|
|
- build-server-image
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Setup Version
|
|
id: version
|
|
uses: ./.github/actions/setup-version
|
|
- name: Deploy to ${{ github.event.inputs.flavor }}
|
|
uses: ./.github/actions/deploy
|
|
with:
|
|
build-type: ${{ github.event.inputs.flavor }}
|
|
gcp-project-number: ${{ secrets.GCP_PROJECT_NUMBER }}
|
|
gcp-project-id: ${{ secrets.GCP_PROJECT_ID }}
|
|
service-account: ${{ secrets.GCP_HELM_DEPLOY_SERVICE_ACCOUNT }}
|
|
cluster-name: ${{ secrets.GCP_CLUSTER_NAME }}
|
|
cluster-location: ${{ secrets.GCP_CLUSTER_LOCATION }}
|
|
env:
|
|
APP_VERSION: ${{ steps.version.outputs.APP_VERSION }}
|
|
DEPLOY_HOST: ${{ secrets.DEPLOY_HOST }}
|
|
CANARY_DEPLOY_HOST: ${{ secrets.CANARY_DEPLOY_HOST }}
|
|
R2_ACCOUNT_ID: ${{ secrets.R2_ACCOUNT_ID }}
|
|
R2_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }}
|
|
R2_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }}
|
|
CAPTCHA_TURNSTILE_SECRET: ${{ secrets.CAPTCHA_TURNSTILE_SECRET }}
|
|
COPILOT_OPENAI_API_KEY: ${{ secrets.COPILOT_OPENAI_API_KEY }}
|
|
COPILOT_FAL_API_KEY: ${{ secrets.COPILOT_FAL_API_KEY }}
|
|
COPILOT_UNSPLASH_API_KEY: ${{ secrets.COPILOT_UNSPLASH_API_KEY }}
|
|
METRICS_CUSTOMER_IO_TOKEN: ${{ secrets.METRICS_CUSTOMER_IO_TOKEN }}
|
|
MAILER_SENDER: ${{ secrets.OAUTH_EMAIL_SENDER }}
|
|
MAILER_USER: ${{ secrets.OAUTH_EMAIL_LOGIN }}
|
|
MAILER_PASSWORD: ${{ secrets.OAUTH_EMAIL_PASSWORD }}
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
AFFINE_GOOGLE_CLIENT_ID: ${{ secrets.AFFINE_GOOGLE_CLIENT_ID }}
|
|
AFFINE_GOOGLE_CLIENT_SECRET: ${{ secrets.AFFINE_GOOGLE_CLIENT_SECRET }}
|
|
DATABASE_URL: ${{ secrets.DATABASE_URL }}
|
|
DATABASE_USERNAME: ${{ secrets.DATABASE_USERNAME }}
|
|
DATABASE_PASSWORD: ${{ secrets.DATABASE_PASSWORD }}
|
|
DATABASE_NAME: ${{ secrets.DATABASE_NAME }}
|
|
GCLOUD_CONNECTION_NAME: ${{ secrets.GCLOUD_CONNECTION_NAME }}
|
|
GCLOUD_CLOUD_SQL_INTERNAL_ENDPOINT: ${{ secrets.GCLOUD_CLOUD_SQL_INTERNAL_ENDPOINT }}
|
|
REDIS_HOST: ${{ secrets.REDIS_HOST }}
|
|
REDIS_PASSWORD: ${{ secrets.REDIS_PASSWORD }}
|
|
CLOUD_SQL_IAM_ACCOUNT: ${{ secrets.CLOUD_SQL_IAM_ACCOUNT }}
|
|
STRIPE_API_KEY: ${{ secrets.STRIPE_API_KEY }}
|
|
STRIPE_WEBHOOK_KEY: ${{ secrets.STRIPE_WEBHOOK_KEY }}
|
|
STATIC_IP_NAME: ${{ secrets.STATIC_IP_NAME }}
|
|
|
|
deploy-done:
|
|
needs:
|
|
- output-prev-version
|
|
- build-frontend-image
|
|
- build-server-image
|
|
- deploy
|
|
if: always()
|
|
runs-on: ubuntu-latest
|
|
name: Post deploy message
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
repository: toeverything/blocksuite
|
|
path: blocksuite
|
|
fetch-depth: 0
|
|
fetch-tags: true
|
|
- name: Setup Node.js
|
|
uses: ./.github/actions/setup-node
|
|
with:
|
|
extra-flags: 'workspaces focus @affine/changelog'
|
|
electron-install: false
|
|
- name: Output deployed info
|
|
if: ${{ always() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') }}
|
|
id: set_info
|
|
run: |
|
|
if [ "${{ github.event.inputs.flavor }}" = "canary" ]; then
|
|
echo "deployed_url=https://affine.fail" >> $GITHUB_OUTPUT
|
|
elif [ "${{ github.event.inputs.flavor }}" = "beta" ]; then
|
|
echo "deployed_url=https://insider.affine.pro" >> $GITHUB_OUTPUT
|
|
elif [ "${{ github.event.inputs.flavor }}" = "stable" ]; then
|
|
echo "deployed_url=https://app.affine.pro" >> $GITHUB_OUTPUT
|
|
else
|
|
exit 1
|
|
fi
|
|
env:
|
|
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
|
- name: Post Success event to a Slack channel
|
|
if: ${{ always() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') }}
|
|
run: node ./tools/changelog/index.js
|
|
env:
|
|
CHANNEL_ID: ${{ secrets.RELEASE_SLACK_CHNNEL_ID }}
|
|
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
|
|
DEPLOYED_URL: ${{ steps.set_info.outputs.deployed_url }}
|
|
PREV_VERSION: ${{ needs.output-prev-version.outputs.prev }}
|
|
NAMESPACE: ${{ needs.output-prev-version.outputs.namespace }}
|
|
DEPLOYMENT: 'SERVER'
|
|
FLAVOR: ${{ github.event.inputs.flavor }}
|
|
BLOCKSUITE_REPO_PATH: ${{ github.workspace }}/blocksuite
|
|
- name: Post Failed event to a Slack channel
|
|
id: failed-slack
|
|
uses: slackapi/slack-github-action@v1.27.0
|
|
if: ${{ always() && contains(needs.*.result, 'failure') }}
|
|
with:
|
|
channel-id: ${{ secrets.RELEASE_SLACK_CHNNEL_ID }}
|
|
payload: |
|
|
{
|
|
"blocks": [
|
|
{
|
|
"type": "section",
|
|
"text": {
|
|
"text": "<${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|Backend deploy failed `${{ github.event.inputs.flavor }}`>",
|
|
"type": "mrkdwn"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
env:
|
|
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
|
|
- name: Post Cancel event to a Slack channel
|
|
id: cancel-slack
|
|
uses: slackapi/slack-github-action@v1.27.0
|
|
if: ${{ always() && contains(needs.*.result, 'cancelled') && !contains(needs.*.result, 'failure') }}
|
|
with:
|
|
channel-id: ${{ secrets.RELEASE_SLACK_CHNNEL_ID }}
|
|
payload: |
|
|
{
|
|
"blocks": [
|
|
{
|
|
"type": "section",
|
|
"text": {
|
|
"text": "<${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|Backend deploy cancelled `${{ github.event.inputs.flavor }}`>",
|
|
"type": "mrkdwn"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
env:
|
|
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
|