Compare commits

...

5 Commits

Author SHA1 Message Date
TakahashiNg 212442e4ce ci: test
Release package / release (push) Successful in 8m47s
2026-03-30 06:33:09 +00:00
TakahashiNg 4fa1922f33 ci: test
Release package / release (push) Failing after 4m24s
2026-03-30 06:09:57 +00:00
TakahashiNguyen e9e0ee5964 Merge branch 'main' into dev-quick-fix
Release package / release (push) Failing after 4m22s
2026-03-30 05:58:26 +00:00
TakahashiNg aba06fb590 chore: better ci
Release package / release (push) Successful in 5m33s
2026-03-30 05:48:35 +00:00
TakahashiNg b992911c6c chore: update
Release package / build-and-push (push) Has been cancelled
Release package / release (push) Has been cancelled
2026-03-30 05:44:48 +00:00
5 changed files with 10 additions and 171 deletions
+6 -8
View File
@@ -67,6 +67,9 @@ jobs:
- name: Format code
run: pnpm format
- name: Build application
run: pnpm build
- name: Release
env:
GITEA_USER: ${{ github.actor }}
@@ -98,15 +101,8 @@ jobs:
git push
fi
build-and-push:
needs: release
if: gitea.ref == 'refs/heads/main'
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Log in to Gitea Container Registry
if: gitea.ref == 'refs/heads/main'
uses: docker/login-action@v3
with:
registry: git.demonkernel.io.vn
@@ -114,6 +110,7 @@ jobs:
password: ${{ secrets.ACCESS_TOKEN }}
- name: Prepare Docker Metadata
if: gitea.ref == 'refs/heads/main'
id: meta
run: |
# Lowercase Repository
@@ -127,6 +124,7 @@ jobs:
echo "version=$VERSION_LOWER" >> $GITHUB_OUTPUT
- name: Build and Push Docker Image
if: gitea.ref == 'refs/heads/main'
uses: docker/build-push-action@v4
with:
context: .
+1
View File
@@ -10,6 +10,7 @@ import type { NextConfig } from "next";
* Docs: https://nextjs.org/docs/app/api-reference/next-config-js
*/
const nextConfig: NextConfig = {
output: "export",
images: {
remotePatterns: [
{
-2
View File
@@ -23,10 +23,8 @@
"typescript": "^5.9.3"
},
"devDependencies": {
"@google/semantic-release-replace-plugin": "^1.2.7",
"@saithodev/semantic-release-gitea": "^2.1.0",
"@semantic-release/exec": "^7.1.0",
"@semantic-release/github": "^12.0.6",
"@semantic-release/npm": "^13.1.5",
"@trivago/prettier-plugin-sort-imports": "^6.0.2",
"@types/react-dom": "^19.2.3",
-139
View File
@@ -39,18 +39,12 @@ importers:
specifier: ^5.9.3
version: 5.9.3
devDependencies:
'@google/semantic-release-replace-plugin':
specifier: ^1.2.7
version: 1.2.7(semantic-release@25.0.3(typescript@5.9.3))
'@saithodev/semantic-release-gitea':
specifier: ^2.1.0
version: 2.1.0
'@semantic-release/exec':
specifier: ^7.1.0
version: 7.1.0(semantic-release@25.0.3(typescript@5.9.3))
'@semantic-release/github':
specifier: ^12.0.6
version: 12.0.6(semantic-release@25.0.3(typescript@5.9.3))
'@semantic-release/npm':
specifier: ^13.1.5
version: 13.1.5(semantic-release@25.0.3(typescript@5.9.3))
@@ -227,13 +221,6 @@ packages:
resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@google/semantic-release-replace-plugin@1.2.7':
resolution: {integrity: sha512-zE+ep9d221O6Rrjw6wA2ffEJfVqrheaTltfFlNO4oQqPTicjTusxG/vxLRoVWjLsyrJzQKyJsbPfGKQ/r9rl+w==}
engines: {node: '>=18'}
deprecated: This package has been renamed to semantic-release-replace-plugin.
peerDependencies:
semantic-release: '>=20.1.0'
'@humanfs/core@0.19.1':
resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
engines: {node: '>=18.18.0'}
@@ -387,10 +374,6 @@ packages:
cpu: [x64]
os: [win32]
'@jest/schemas@29.6.3':
resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
'@jridgewell/gen-mapping@0.3.13':
resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
@@ -591,9 +574,6 @@ packages:
resolution: {integrity: sha512-KxXvfapcixpz6rVEB6HPjOUZT22yN6v0vI0urQSk1L8MlEWPDFCZkhw2xmkyoTGYeFw7tWTZd7e3lVzRZRN/EA==}
engines: {node: '>=18'}
'@sinclair/typebox@0.27.10':
resolution: {integrity: sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==}
'@sindresorhus/is@2.1.1':
resolution: {integrity: sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg==}
engines: {node: '>=10'}
@@ -975,10 +955,6 @@ packages:
resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
engines: {node: '>=8'}
ansi-styles@5.2.0:
resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
engines: {node: '>=10'}
ansi-styles@6.2.3:
resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==}
engines: {node: '>=12'}
@@ -1212,10 +1188,6 @@ packages:
cliui@7.0.4:
resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}
cliui@8.0.1:
resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
engines: {node: '>=12'}
cliui@9.0.1:
resolution: {integrity: sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==}
engines: {node: '>=20'}
@@ -1430,10 +1402,6 @@ packages:
resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
engines: {node: '>=8'}
diff-sequences@29.6.3:
resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dir-glob@3.0.1:
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
engines: {node: '>=8'}
@@ -1910,11 +1878,6 @@ packages:
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
glob@8.1.0:
resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==}
engines: {node: '>=12'}
deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
globals@14.0.0:
resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
engines: {node: '>=18'}
@@ -2258,14 +2221,6 @@ packages:
javascript-natural-sort@0.7.1:
resolution: {integrity: sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==}
jest-diff@29.7.0:
resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
jest-get-type@29.6.3:
resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
jiti@2.6.1:
resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==}
hasBin: true
@@ -2594,10 +2549,6 @@ packages:
minimatch@3.1.5:
resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==}
minimatch@5.1.9:
resolution: {integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==}
engines: {node: '>=10'}
minimatch@9.0.9:
resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==}
engines: {node: '>=16 || 14 >=14.17'}
@@ -3089,10 +3040,6 @@ packages:
engines: {node: '>=14'}
hasBin: true
pretty-format@29.7.0:
resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
pretty-ms@9.3.0:
resolution: {integrity: sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==}
engines: {node: '>=18'}
@@ -3153,9 +3100,6 @@ packages:
react-is@16.13.1:
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
react-is@18.3.1:
resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==}
react@19.2.3:
resolution: {integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==}
engines: {node: '>=0.10.0'}
@@ -3204,11 +3148,6 @@ packages:
resolution: {integrity: sha512-P7B4+jq8DeD2nMsAcdfaqHbssgHtZ7Z5+++a5ask90fvmJ8p5je4mOa+wzu+DB4vQ5tdJV/xywY+UnVFeQLV5Q==}
engines: {node: '>=14'}
replace-in-file@7.2.0:
resolution: {integrity: sha512-CiLXVop3o8/h2Kd1PwKPPimmS9wUV0Ki6Fl8+1ITD35nB3Gl/PrW5IONpTE0AXk0z4v8WYcpEpdeZqMXvSnWpg==}
engines: {node: '>=10'}
hasBin: true
require-directory@2.1.1:
resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
engines: {node: '>=0.10.0'}
@@ -3839,10 +3778,6 @@ packages:
resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
engines: {node: '>=10'}
yargs-parser@21.1.1:
resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
engines: {node: '>=12'}
yargs-parser@22.0.0:
resolution: {integrity: sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==}
engines: {node: ^20.19.0 || ^22.12.0 || >=23}
@@ -3851,10 +3786,6 @@ packages:
resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==}
engines: {node: '>=10'}
yargs@17.7.2:
resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
engines: {node: '>=12'}
yargs@18.0.0:
resolution: {integrity: sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==}
engines: {node: ^20.19.0 || ^22.12.0 || >=23}
@@ -4073,13 +4004,6 @@ snapshots:
'@eslint/core': 0.17.0
levn: 0.4.1
'@google/semantic-release-replace-plugin@1.2.7(semantic-release@25.0.3(typescript@5.9.3))':
dependencies:
jest-diff: 29.7.0
lodash-es: 4.17.23
replace-in-file: 7.2.0
semantic-release: 25.0.3(typescript@5.9.3)
'@humanfs/core@0.19.1': {}
'@humanfs/node@0.16.7':
@@ -4188,10 +4112,6 @@ snapshots:
'@img/sharp-win32-x64@0.34.5':
optional: true
'@jest/schemas@29.6.3':
dependencies:
'@sinclair/typebox': 0.27.10
'@jridgewell/gen-mapping@0.3.13':
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
@@ -4444,8 +4364,6 @@ snapshots:
'@simple-libs/stream-utils@1.2.0': {}
'@sinclair/typebox@0.27.10': {}
'@sindresorhus/is@2.1.1': {}
'@sindresorhus/is@4.6.0': {}
@@ -4805,8 +4723,6 @@ snapshots:
dependencies:
color-convert: 2.0.1
ansi-styles@5.2.0: {}
ansi-styles@6.2.3: {}
any-promise@1.3.0: {}
@@ -5082,12 +4998,6 @@ snapshots:
strip-ansi: 6.0.1
wrap-ansi: 7.0.0
cliui@8.0.1:
dependencies:
string-width: 4.2.3
strip-ansi: 6.0.1
wrap-ansi: 7.0.0
cliui@9.0.1:
dependencies:
string-width: 7.2.0
@@ -5287,8 +5197,6 @@ snapshots:
detect-libc@2.1.2: {}
diff-sequences@29.6.3: {}
dir-glob@3.0.1:
dependencies:
path-type: 4.0.0
@@ -5981,14 +5889,6 @@ snapshots:
once: 1.4.0
path-is-absolute: 1.0.1
glob@8.1.0:
dependencies:
fs.realpath: 1.0.0
inflight: 1.0.6
inherits: 2.0.4
minimatch: 5.1.9
once: 1.4.0
globals@14.0.0: {}
globals@16.4.0: {}
@@ -6331,15 +6231,6 @@ snapshots:
javascript-natural-sort@0.7.1: {}
jest-diff@29.7.0:
dependencies:
chalk: 4.1.2
diff-sequences: 29.6.3
jest-get-type: 29.6.3
pretty-format: 29.7.0
jest-get-type@29.6.3: {}
jiti@2.6.1: {}
js-tokens@4.0.0: {}
@@ -6621,10 +6512,6 @@ snapshots:
dependencies:
brace-expansion: 1.1.13
minimatch@5.1.9:
dependencies:
brace-expansion: 2.0.3
minimatch@9.0.9:
dependencies:
brace-expansion: 2.0.3
@@ -6985,12 +6872,6 @@ snapshots:
prettier@3.8.1: {}
pretty-format@29.7.0:
dependencies:
'@jest/schemas': 29.6.3
ansi-styles: 5.2.0
react-is: 18.3.1
pretty-ms@9.3.0:
dependencies:
parse-ms: 4.0.0
@@ -7050,8 +6931,6 @@ snapshots:
react-is@16.13.1: {}
react-is@18.3.1: {}
react@19.2.3: {}
read-package-up@11.0.0:
@@ -7133,12 +7012,6 @@ snapshots:
dependencies:
'@pnpm/npm-conf': 3.0.2
replace-in-file@7.2.0:
dependencies:
chalk: 4.1.2
glob: 8.1.0
yargs: 17.7.2
require-directory@2.1.1: {}
resolve-from@4.0.0: {}
@@ -7899,8 +7772,6 @@ snapshots:
yargs-parser@20.2.9: {}
yargs-parser@21.1.1: {}
yargs-parser@22.0.0: {}
yargs@16.2.0:
@@ -7913,16 +7784,6 @@ snapshots:
y18n: 5.0.8
yargs-parser: 20.2.9
yargs@17.7.2:
dependencies:
cliui: 8.0.1
escalade: 3.2.0
get-caller-file: 2.0.5
require-directory: 2.1.1
string-width: 4.2.3
y18n: 5.0.8
yargs-parser: 21.1.1
yargs@18.0.0:
dependencies:
cliui: 9.0.1
+3 -22
View File
@@ -18,28 +18,9 @@ const config: GlobalConfig = {
[
"@semantic-release/exec",
{
prepareCmd:
"pnpm build && node scripts/release.ts ${nextRelease.version}",
},
],
[
"@google/semantic-release-replace-plugin",
{
replacements: [
{
files: ["k8s/k8s.yaml"],
from: "image: git.demonkernel.io.vn/foodsurf/frontend:.*",
to: "image: git.demonkernel.io.vn/foodsurf/frontend:${nextRelease.version}",
results: [
{
file: "k8s/k8s.yaml",
hasChanged: true,
numMatches: 1,
numReplacements: 1,
},
],
},
],
prepareCmd: "node scripts/release.ts ${nextRelease.version}",
updateFrontend:
"sed -i 's|image: git.demonkernel.io.vn/foodsurf/frontend:.*|image: git.demonkernel.io.vn/foodsurf/frontend:${nextRelease.version}|g' k8s/k8s.yaml",
},
],
[