Compare commits

...

21 Commits

Author SHA1 Message Date
TakahashiNguyen 8d0247024d Merge pull request 'fix: better ci script' (#7) from dev-cicd into main
Release package / release (push) Failing after 4m38s
Release package / build-and-push (push) Has been skipped
Reviewed-on: #7
2026-03-29 14:15:26 +00:00
TakahashiNg 9ad66301de ci: better ci
Release package / release (push) Successful in 2m23s
Release package / build-and-push (push) Has been skipped
2026-03-29 14:12:07 +00:00
TakahashiNg 5593c4fccc fix: ci script
Release package / release (push) Failing after 4m44s
Release package / build-and-push (push) Has been skipped
2026-03-29 14:06:39 +00:00
TakahashiNg 801b804d2d fix: ci script
Release package / build-and-push (push) Has been cancelled
Release package / release (push) Has been cancelled
2026-03-29 13:56:08 +00:00
TakahashiNg 7534f41c6e fix: ci script
Release package / release (push) Failing after 25s
Release package / build-and-push (push) Has been skipped
2026-03-29 13:54:37 +00:00
TakahashiNg 2873952f10 fix: ci script
Release package / release (push) Failing after 15s
Release package / build-and-push (push) Has been skipped
2026-03-29 13:52:32 +00:00
TakahashiNg e448d5ebaf ci: better ci
Release package / release (push) Failing after 32s
Release package / build-and-push (push) Has been skipped
2026-03-27 06:37:24 +00:00
TakahashiNguyen 1c9b076316 fix: better metadata name
Release package / release (push) Failing after 5m12s
Release package / build-and-push (push) Has been skipped
Reviewed-on: #6
2026-03-27 06:24:32 +00:00
TakahashiNg 25c44755b9 chore: update
Release package / release (push) Successful in 3m2s
Release package / build-and-push (push) Has been skipped
2026-03-27 06:13:29 +00:00
TakahashiNg 3e2792931b fix: better metadata name
Release package / release (push) Successful in 2m47s
Release package / build-and-push (push) Has been skipped
Release package / deploy-via-portainer (push) Has been skipped
2026-03-27 05:52:25 +00:00
TakahashiNguyen 28990c2a4c Merge pull request 'fix: better k8s path' (#5) from dev-ci-update into main
Release package / release (push) Successful in 3m41s
Release package / build-and-push (push) Successful in 4m17s
Release package / deploy-via-portainer (push) Failing after 13s
Reviewed-on: #5
2026-03-27 05:20:02 +00:00
TakahashiNg c8d0c3838f chore: update k8s file path
Release package / release (push) Successful in 3m57s
Release package / build-and-push (push) Has been skipped
Release package / deploy-via-portainer (push) Has been skipped
2026-03-27 05:15:37 +00:00
TakahashiNg 2bba4bc441 ci: update script
Release package / release (push) Failing after 12m50s
Release package / build-and-push (push) Has been cancelled
Release package / deploy-via-portainer (push) Has been cancelled
2026-03-27 04:59:26 +00:00
TakahashiNguyen b6f7daef3f Merge pull request 'feat: login and register page' (#4) from dev-created-login-and-register-page into main
Release package / release (push) Failing after 7m22s
Release package / build-and-push (push) Has been skipped
Release package / deploy-via-portainer (push) Has been skipped
Reviewed-on: #4
2026-03-27 04:56:38 +00:00
gitea-actions 475c7f5fa5 chore: release [ci skip] 2026-03-27 04:21:56 +00:00
TakahashiNg dc5471054a chore: add k8s config
Release package / release (push) Successful in 3m28s
Release package / build-and-push (push) Successful in 2m59s
Release package / deploy-via-portainer (push) Has been skipped
2026-03-27 04:18:33 +00:00
TakahashiNg 3197ec69da chore: update
Release package / release (push) Successful in 1m32s
Release package / build-and-push (push) Successful in 1m29s
Release package / deploy-via-portainer (push) Has been skipped
2026-03-26 15:40:47 +00:00
TakahashiNg e8565a05fd chore: update
Release package / build-and-push (push) Failing after 38s
Release package / deploy-via-portainer (push) Has been skipped
Release package / release (push) Successful in 1m48s
2026-03-26 15:37:26 +00:00
TakahashiNg ada1e0b06c Merge branch 'dev-created-login-and-register-page' of https://git.demonkernel.io.vn/FoodSurf/frontend into dev-created-login-and-register-page
Release package / release (push) Successful in 6m58s
Release package / build-and-push (push) Successful in 2m3s
Release package / deploy-via-portainer (push) Has been skipped
2026-03-26 15:12:25 +00:00
TakahashiNg 6021ba721a chore: update 2026-03-26 15:12:20 +00:00
gitea-actions 7229ac3432 chore: release [ci skip] 2026-03-26 15:09:23 +00:00
6 changed files with 107 additions and 33 deletions
+44 -12
View File
@@ -14,7 +14,27 @@ jobs:
pull-requests: write
id-token: write
runs-on: ubuntu-latest
outputs:
new_version: ${{ steps.set_output.outputs.version }}
steps:
- name: Calculate and Export Target IP
run: |
# 1. Lấy IP hiện tại và tính toán IP đích (đổi octet cuối thành .1)
RUNNER_IP=$(hostname -I | awk '{print $1}')
CALCULATED_IP=$(echo $RUNNER_IP | cut -d'.' -f1-3).1
# 2. Đưa vào biến môi trường toàn cục của Job
echo "TARGET_IP=${CALCULATED_IP}" >> $GITHUB_ENV
- name: Setup SSH Key
run: |
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "${{ secrets.DEPLOY_KEY }}" > ~/.ssh/id_ed25519
chmod 600 ~/.ssh/id_ed25519
ssh-keyscan -p 222 -t ed25519 $TARGET_IP >> ~/.ssh/known_hosts
- uses: actions/checkout@v6
with:
fetch-depth: 0
@@ -52,22 +72,33 @@ jobs:
GITEA_USER: ${{ github.actor }}
GITEA_TOKEN: ${{ secrets.ACCESS_TOKEN }}
run: pnpm release
- name: Set Version Output
id: set_output
run: |
# Đọc version hiện tại trong package.json sau khi release
VERSION=$(node -p "require('./package.json').version")
echo "version=$VERSION" >> $GITHUB_OUTPUT
- name: Commit & Push Changes
if: always()
if: gitea.ref == 'refs/heads/main'
run: |
if [ -n "$(git status --porcelain)" ]; then
git config --global user.name "gitea-actions"
git config --global user.email "actions-user@noreply.git.demonkernel.io.vn"
git remote set-url origin ssh://git@$TARGET_IP:222/FoodSurf/backend.git
git rm -r --cached .
git add .
git commit -m "chore: release [ci skip]"
git push
fi
build-and-push:
# if: gitea.ref == 'refs/heads/main'
needs: release
if: gitea.ref == 'refs/heads/main'
runs-on: ubuntu-latest
steps:
- name: Checkout code
@@ -83,21 +114,22 @@ jobs:
- name: Prepare Docker Metadata
id: meta
run: |
REPO_LOWER=$(echo "${{ gitea.repository }}" | tr '[:upper:]' '[:lower:]')
# Lowercase Repository
REPO_LOWER=$(echo "${{ github.repository }}" | tr '[:upper:]' '[:lower:]')
# Lấy version từ job release và lowercase nó (cho các bản prerelease)
RAW_VERSION="${{ needs.release.outputs.new_version }}"
VERSION_LOWER=$(echo "$RAW_VERSION" | tr '[:upper:]' '[:lower:]')
echo "repo=$REPO_LOWER" >> $GITHUB_OUTPUT
echo "version=$VERSION_LOWER" >> $GITHUB_OUTPUT
- name: Build and Push Docker Image
uses: docker/build-push-action@v4
with:
context: .
push: true
tags: gitea.demonkernel.io.vn/${{ steps.meta.outputs.repo }}:latest
tags: |
git.demonkernel.io.vn/${{ steps.meta.outputs.repo }}:latest
git.demonkernel.io.vn/${{ steps.meta.outputs.repo }}:${{ steps.meta.outputs.version }}
deploy-via-portainer:
if: gitea.ref == 'refs/heads/main'
needs: build-and-push
runs-on: ubuntu-latest
steps:
- name: Trigger Portainer Webhook
run: |
curl -X POST "${{ secrets.PORTAINER_WEBHOOK_URL }}"
+42
View File
@@ -0,0 +1,42 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: drinkool-frontend
labels:
app: web
spec:
replicas: 1
selector:
matchLabels:
app: web
template:
metadata:
labels:
app: web
spec:
imagePullSecrets:
- name: gitea-registry-secret
containers:
- name: frontend-container
image: git.demonkernel.io.vn/foodsurf/frontend:latest
resources:
limits:
cpu: "50m"
memory: "32Mi"
requests:
cpu: "10m"
memory: "16Mi"
---
apiVersion: v1
kind: Service
metadata:
name: my-web-service
spec:
type: NodePort
selector:
app: web
ports:
- protocol: TCP
port: 80
targetPort: 80
nodePort: 30080
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "temp",
"version": "0.1.0",
"version": "1.0.0-created-login-and-register-page.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "temp",
"version": "0.1.0",
"version": "1.0.0-created-login-and-register-page.1",
"dependencies": {
"next": "16.1.7",
"react": "19.2.3",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "temp",
"version": "0.1.0",
"version": "1.0.0-created-login-and-register-page.1",
"private": true,
"scripts": {
"dev": "next dev",
+17 -17
View File
@@ -1095,8 +1095,8 @@ packages:
resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==}
engines: {node: 18 || 20 || >=22}
baseline-browser-mapping@2.10.10:
resolution: {integrity: sha512-sUoJ3IMxx4AyRqO4MLeHlnGDkyXRoUG0/AI9fjK+vS72ekpV0yWVY7O0BVjmBcRtkNcsAO2QDZ4tdKKGoI6YaQ==}
baseline-browser-mapping@2.10.11:
resolution: {integrity: sha512-DAKrHphkJyiGuau/cFieRYhcTFeK/lBuD++C7cZ6KZHbMhBrisoi+EvhQ5RZrIfV5qwsW8kgQ07JIC+MDJRAhg==}
engines: {node: '>=6.0.0'}
hasBin: true
@@ -1466,8 +1466,8 @@ packages:
ee-first@1.1.1:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
electron-to-chromium@1.5.325:
resolution: {integrity: sha512-PwfIw7WQSt3xX7yOf5OE/unLzsK9CaN2f/FvV3WjPR1Knoc1T9vePRVV4W1EM301JzzysK51K7FNKcusCr0zYA==}
electron-to-chromium@1.5.327:
resolution: {integrity: sha512-hLxLdIJDf8zIzKoH2TPCs+Botc+wUmj9sp4jVMwklY/sKleM8xxxOExRX3Gxj73nCXmJe3anhG7SvsDDPDvmuQ==}
emoji-regex@10.6.0:
resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==}
@@ -1940,8 +1940,8 @@ packages:
graceful-fs@4.2.11:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
handlebars@4.7.8:
resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==}
handlebars@4.7.9:
resolution: {integrity: sha512-4E71E0rpOaQuJR2A3xDZ+GM1HyWYv1clR58tC8emQNeQe3RH7MAzSbat+V0wG78LQBo6m6bzSG/L4pBuCsgnUQ==}
engines: {node: '>=0.4.7'}
hasBin: true
@@ -2697,8 +2697,8 @@ packages:
resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==}
engines: {node: '>=18'}
npm@11.12.0:
resolution: {integrity: sha512-xPhOap4ZbJWyd7DAOukP564WFwNSGu/2FeTRFHhiiKthcauxhH/NpkJAQm24xD+cAn8av5tQ00phi98DqtfLsg==}
npm@11.12.1:
resolution: {integrity: sha512-zcoUuF1kezGSAo0CqtvoLXX3mkRqzuqYdL6Y5tdo8g69NVV3CkjQ6ZBhBgB4d7vGkPcV6TcvLi3GRKPDFX+xTA==}
engines: {node: ^20.17.0 || >=22.9.0}
hasBin: true
bundledDependencies:
@@ -4370,7 +4370,7 @@ snapshots:
lodash-es: 4.17.23
nerf-dart: 1.0.0
normalize-url: 9.0.0
npm: 11.12.0
npm: 11.12.1
rc: 1.2.8
read-pkg: 10.1.0
registry-auth-token: 5.1.1
@@ -4882,7 +4882,7 @@ snapshots:
balanced-match@4.0.4: {}
baseline-browser-mapping@2.10.10: {}
baseline-browser-mapping@2.10.11: {}
basic-auth@2.0.1:
dependencies:
@@ -4932,9 +4932,9 @@ snapshots:
browserslist@4.28.1:
dependencies:
baseline-browser-mapping: 2.10.10
baseline-browser-mapping: 2.10.11
caniuse-lite: 1.0.30001781
electron-to-chromium: 1.5.325
electron-to-chromium: 1.5.327
node-releases: 2.0.36
update-browserslist-db: 1.2.3(browserslist@4.28.1)
@@ -5104,7 +5104,7 @@ snapshots:
dependencies:
'@simple-libs/stream-utils': 1.2.0
conventional-commits-filter: 5.0.0
handlebars: 4.7.8
handlebars: 4.7.9
meow: 13.2.0
semver: 7.7.4
@@ -5263,7 +5263,7 @@ snapshots:
ee-first@1.1.1: {}
electron-to-chromium@1.5.325: {}
electron-to-chromium@1.5.327: {}
emoji-regex@10.6.0: {}
@@ -5967,7 +5967,7 @@ snapshots:
graceful-fs@4.2.11: {}
handlebars@4.7.8:
handlebars@4.7.9:
dependencies:
minimist: 1.2.8
neo-async: 2.6.2
@@ -6588,7 +6588,7 @@ snapshots:
dependencies:
'@next/env': 16.1.7
'@swc/helpers': 0.5.15
baseline-browser-mapping: 2.10.10
baseline-browser-mapping: 2.10.11
caniuse-lite: 1.0.30001781
postcss: 8.4.31
react: 19.2.3
@@ -6657,7 +6657,7 @@ snapshots:
path-key: 4.0.0
unicorn-magic: 0.3.0
npm@11.12.0: {}
npm@11.12.1: {}
object-assign@4.1.1: {}
+1 -1
View File
@@ -10,7 +10,7 @@ const zipPath = "release.zip";
console.log(`📦 Đang nén file cho version: ${version}...`);
execSync(`zip -r ${zipPath} out`, {
execSync(`cd out && zip -r ../${zipPath} .`, {
stdio: "inherit",
});