feat(ci): introduce RelativeCI for the client

This commit is contained in:
Elian Doran 2025-06-07 13:02:37 +03:00
parent 5a53fbbb01
commit c8b3cdf01b
No known key found for this signature in database
5 changed files with 55 additions and 3 deletions

View File

@ -74,7 +74,14 @@ jobs:
run: pnpm install --frozen-lockfile run: pnpm install --frozen-lockfile
- name: Update build info - name: Update build info
run: pnpm run chore:update-build-info run: pnpm run chore:update-build-info
- name: Trigger build - name: Trigger client build
run: pnpm nx run client:build
- name: Send client bundle stats to RelativeCI
uses: relative-ci/agent-action@v3
with:
webpackStatsFile: ./apps/client/dist/webpack-stats.json
key: ${{ secrets.RELATIVE_CI_CLIENT_KEY }}
- name: Trigger server build
run: pnpm nx run server:build run: pnpm nx run server:build
- uses: docker/setup-buildx-action@v3 - uses: docker/setup-buildx-action@v3
- uses: docker/build-push-action@v6 - uses: docker/build-push-action@v6

View File

@ -3,6 +3,7 @@ import { join, resolve } from 'path';
import { defineConfig } from 'vite'; import { defineConfig } from 'vite';
import { viteStaticCopy } from 'vite-plugin-static-copy' import { viteStaticCopy } from 'vite-plugin-static-copy'
import asset_path from './src/asset_path'; import asset_path from './src/asset_path';
import webpackStatsPlugin from 'rollup-plugin-webpack-stats';
const assets = [ "assets", "stylesheets", "libraries", "fonts", "translations" ]; const assets = [ "assets", "stylesheets", "libraries", "fonts", "translations" ];
@ -33,7 +34,8 @@ export default defineConfig(() => ({
dest: "", dest: "",
} }
] ]
}) }),
webpackStatsPlugin()
], ],
resolve: { resolve: {
alias: [ alias: [

View File

@ -282,7 +282,10 @@
{ {
"glob": "**/*", "glob": "**/*",
"input": "apps/client/dist", "input": "apps/client/dist",
"output": "public" "output": "public",
"ignore": [
"webpack-stats.json"
]
}, },
{ {
"glob": "**/*", "glob": "**/*",

View File

@ -55,6 +55,7 @@
"jsonc-eslint-parser": "^2.1.0", "jsonc-eslint-parser": "^2.1.0",
"nx": "21.1.3", "nx": "21.1.3",
"react-refresh": "^0.17.0", "react-refresh": "^0.17.0",
"rollup-plugin-webpack-stats": "2.0.7",
"tslib": "^2.3.0", "tslib": "^2.3.0",
"tsx": "4.19.4", "tsx": "4.19.4",
"typescript": "~5.8.0", "typescript": "~5.8.0",

39
pnpm-lock.yaml generated
View File

@ -123,6 +123,9 @@ importers:
react-refresh: react-refresh:
specifier: ^0.17.0 specifier: ^0.17.0
version: 0.17.0 version: 0.17.0
rollup-plugin-webpack-stats:
specifier: 2.0.7
version: 2.0.7(rollup@4.40.0)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0))
tslib: tslib:
specifier: ^2.3.0 specifier: ^2.3.0
version: 2.8.1 version: 2.8.1
@ -10957,6 +10960,18 @@ packages:
robust-predicates@3.0.2: robust-predicates@3.0.2:
resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==} resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==}
rollup-plugin-stats@1.3.9:
resolution: {integrity: sha512-rpz+EIdA9rQfkK/RiiMde0H8r/yCU4ilQJVZNFO6o1pU1H+pTMhu5Nlkm4+7J95+J98n0T5gxQPwyi/sxCRQXw==}
engines: {node: '>=18'}
peerDependencies:
rollup: ^3.0.0 || ^4.0.0
vite: ^5.0.0 || ^6.0.0
peerDependenciesMeta:
rollup:
optional: true
vite:
optional: true
rollup-plugin-styles@4.0.0: rollup-plugin-styles@4.0.0:
resolution: {integrity: sha512-A2K2sao84OsTmDxXG83JTCdXWrmgvQkkI38XDat46rdtpGMRm9tSYqeCdlwwGDJF4kKIafhV1mUidqu8MxUGig==} resolution: {integrity: sha512-A2K2sao84OsTmDxXG83JTCdXWrmgvQkkI38XDat46rdtpGMRm9tSYqeCdlwwGDJF4kKIafhV1mUidqu8MxUGig==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@ -10969,6 +10984,18 @@ packages:
peerDependencies: peerDependencies:
rollup: ^3.0.0||^4.0.0 rollup: ^3.0.0||^4.0.0
rollup-plugin-webpack-stats@2.0.7:
resolution: {integrity: sha512-aAd/4GrnsDuwFIlPJpIJ/wcu6msiza5lNZIrfWXmskwLSEx9GhJlKFYU3HHgl5XHLgdF45ajCrV8X0k3EV4ztw==}
engines: {node: '>=18'}
peerDependencies:
rollup: ^3.0.0 || ^4.0.0
vite: ^5.0.0 || ^6.0.0
peerDependenciesMeta:
rollup:
optional: true
vite:
optional: true
rollup@4.40.0: rollup@4.40.0:
resolution: {integrity: sha512-Noe455xmA96nnqH5piFtLobsGbCij7Tu+tb3c1vYjNbTkfzGqXqQXG3wJaYXkRZuQ0vEYN4bhwg7QnIrqB5B+w==} resolution: {integrity: sha512-Noe455xmA96nnqH5piFtLobsGbCij7Tu+tb3c1vYjNbTkfzGqXqQXG3wJaYXkRZuQ0vEYN4bhwg7QnIrqB5B+w==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'} engines: {node: '>=18.0.0', npm: '>=8.0.0'}
@ -25217,6 +25244,11 @@ snapshots:
robust-predicates@3.0.2: {} robust-predicates@3.0.2: {}
rollup-plugin-stats@1.3.9(rollup@4.40.0)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0)):
optionalDependencies:
rollup: 4.40.0
vite: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0)
rollup-plugin-styles@4.0.0(rollup@4.40.0): rollup-plugin-styles@4.0.0(rollup@4.40.0):
dependencies: dependencies:
'@rollup/pluginutils': 4.2.1 '@rollup/pluginutils': 4.2.1
@ -25244,6 +25276,13 @@ snapshots:
'@rollup/pluginutils': 5.1.4(rollup@4.40.0) '@rollup/pluginutils': 5.1.4(rollup@4.40.0)
rollup: 4.40.0 rollup: 4.40.0
rollup-plugin-webpack-stats@2.0.7(rollup@4.40.0)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0)):
dependencies:
rollup-plugin-stats: 1.3.9(rollup@4.40.0)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0))
optionalDependencies:
rollup: 4.40.0
vite: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0)
rollup@4.40.0: rollup@4.40.0:
dependencies: dependencies:
'@types/estree': 1.0.7 '@types/estree': 1.0.7