feat: release v1.1.0 with enhancements and refactoring
Docker images / prepare-release (push) Failing after 7s
Docker images / backend-image (push) Has been skipped
Docker images / frontend-image (push) Has been skipped
Docker images / updater-image (push) Has been skipped
Docker images / publish-release (push) Has been skipped
Docker images / notify-webhook (push) Has been skipped
Docker images / prepare-release (push) Failing after 7s
Docker images / backend-image (push) Has been skipped
Docker images / frontend-image (push) Has been skipped
Docker images / updater-image (push) Has been skipped
Docker images / publish-release (push) Has been skipped
Docker images / notify-webhook (push) Has been skipped
- Updated application version to 1.1.0, reflecting new features and improvements. - Enhanced release management by allowing Docker images to be built even when no new commits are present since the last tag. - Implemented new features including database backup and restore functionality, improved network configuration handling, and enhanced UI feedback with toast notifications. - Refactored code to replace custom API fetch logic with a utility function for better maintainability. - Streamlined Docker workflows and improved build efficiency through various configuration updates.
This commit is contained in:
@@ -1,7 +1,183 @@
|
|||||||
{
|
{
|
||||||
"version": "1.0.0",
|
"version": "1.1.0",
|
||||||
"tag": "v1.0.0",
|
"tag": "v1.1.0",
|
||||||
"publishedAt": null,
|
"publishedAt": "2026-05-12T10:25:16.680Z",
|
||||||
"releaseUrl": "",
|
"releaseUrl": "https://git.shts.su/denozord/MikrotikManager-3/releases/tag/v1.1.0",
|
||||||
"commits": []
|
"commits": [
|
||||||
|
{
|
||||||
|
"sha": "9ccc8459d77032dae8e7f67ac0df0287d7553341",
|
||||||
|
"shortSha": "9ccc845",
|
||||||
|
"subject": "feat: update application versioning and enhance release management",
|
||||||
|
"author": "Denozordec",
|
||||||
|
"type": "feat"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sha": "f282585b525fe787ab6bdbd2f83c9c848b376771",
|
||||||
|
"shortSha": "f282585",
|
||||||
|
"subject": "feat: enhance network configuration handling in updater script",
|
||||||
|
"author": "Denozordec",
|
||||||
|
"type": "feat"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sha": "40e2040fb05717283d0ee2b7d0a6b3315abecf73",
|
||||||
|
"shortSha": "40e2040",
|
||||||
|
"subject": "feat: refactor theme management and remove next-themes dependency",
|
||||||
|
"author": "Denozordec",
|
||||||
|
"type": "feat"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sha": "bb07ba0f69966e4b5533f6b4f0d7d96cef0916f1",
|
||||||
|
"shortSha": "bb07ba0",
|
||||||
|
"subject": "feat: implement database backup and restore functionality in settings page",
|
||||||
|
"author": "Denozordec",
|
||||||
|
"type": "feat"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sha": "1fefed2aa0dbd51f893750e2e179f65bd9386372",
|
||||||
|
"shortSha": "1fefed2",
|
||||||
|
"subject": "chore: enhance data source configuration and mock data handling",
|
||||||
|
"author": "Denozordec",
|
||||||
|
"type": "chore"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sha": "4489dfb2d62e836b5415b9ead409851bef995eaf",
|
||||||
|
"shortSha": "4489dfb",
|
||||||
|
"subject": "chore: enhance frontend configuration for backend integration",
|
||||||
|
"author": "Denozordec",
|
||||||
|
"type": "chore"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sha": "4b240d70d0fbc2143cc657f78f932d003ad5d406",
|
||||||
|
"shortSha": "4b240d7",
|
||||||
|
"subject": "chore: add server and server_snapshots tables to database schema",
|
||||||
|
"author": "Denozordec",
|
||||||
|
"type": "chore"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sha": "63252ae85ed03b772ede2be97a27f1605cc16d0d",
|
||||||
|
"shortSha": "63252ae",
|
||||||
|
"subject": "chore: enhance image reference resolution in updater script",
|
||||||
|
"author": "Denozordec",
|
||||||
|
"type": "chore"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sha": "a359874a42add6b0f4f2f4844ba6e19268bdc05f",
|
||||||
|
"shortSha": "a359874",
|
||||||
|
"subject": "chore: enhance Dockerfile for backend to rebuild better-sqlite3",
|
||||||
|
"author": "Denozordec",
|
||||||
|
"type": "chore"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sha": "4ec247f2c02edfccd775c3e5c644c28844358c90",
|
||||||
|
"shortSha": "4ec247f",
|
||||||
|
"subject": "chore: update Docker Compose configuration for data volume management",
|
||||||
|
"author": "Denozordec",
|
||||||
|
"type": "chore"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sha": "2697a35c0a719396fbe5fdaf6045cb9ca49c28fa",
|
||||||
|
"shortSha": "2697a35",
|
||||||
|
"subject": "chore: streamline Docker workflow and enhance build efficiency",
|
||||||
|
"author": "Denozordec",
|
||||||
|
"type": "chore"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sha": "7295545cde2fc7b0674ba17b3447d89be2f85218",
|
||||||
|
"shortSha": "7295545",
|
||||||
|
"subject": "chore: add updater image configuration to Docker workflow",
|
||||||
|
"author": "Denozordec",
|
||||||
|
"type": "chore"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sha": "a5b5a2a3d390bf4f6fb0986a917d43532844a346",
|
||||||
|
"shortSha": "a5b5a2a",
|
||||||
|
"subject": "chore: enhance Dockerfiles and package.json for improved build process",
|
||||||
|
"author": "Denozordec",
|
||||||
|
"type": "chore"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sha": "01596864dc7801275eefcb67aad67b58785d3a28",
|
||||||
|
"shortSha": "0159686",
|
||||||
|
"subject": "chore: update Dockerfiles to ignore scripts during npm install",
|
||||||
|
"author": "Denozordec",
|
||||||
|
"type": "chore"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sha": "02119a3acde256a92edd06cf4d00337bb53088ee",
|
||||||
|
"shortSha": "02119a3",
|
||||||
|
"subject": "chore: configure dynamic image naming for frontend and backend in Docker workflow",
|
||||||
|
"author": "Denozordec",
|
||||||
|
"type": "chore"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sha": "c36994c36b78063068aff5fa509d1d26c522de51",
|
||||||
|
"shortSha": "c36994c",
|
||||||
|
"subject": "chore: update configuration and dependencies",
|
||||||
|
"author": "Denozordec",
|
||||||
|
"type": "chore"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sha": "dfbaa859ad7616159e373ca50632efd2ad77e8e3",
|
||||||
|
"shortSha": "dfbaa85",
|
||||||
|
"subject": "chore: isolate frontend and backend via npm workspaces and @mmapp/contracts",
|
||||||
|
"author": "Denozordec",
|
||||||
|
"type": "chore"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sha": "b9a75b6831e4ef27726bedbab37f385366c33067",
|
||||||
|
"shortSha": "b9a75b6",
|
||||||
|
"subject": "feat: implement internet path functionality with backend support",
|
||||||
|
"author": "Denozordec",
|
||||||
|
"type": "feat"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sha": "11ad94f67d4a3f5567d3e6e9cd8fe7a587e86df1",
|
||||||
|
"shortSha": "11ad94f",
|
||||||
|
"subject": "feat: integrate sonner for toast notifications and enhance UI feedback",
|
||||||
|
"author": "Denozordec",
|
||||||
|
"type": "feat"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sha": "84ecd4f0619cb434918e3d36d1d2d8d61dc0c759",
|
||||||
|
"shortSha": "84ecd4f",
|
||||||
|
"subject": "feat: enhance backups page with live data loading and backup job management",
|
||||||
|
"author": "Denozordec",
|
||||||
|
"type": "feat"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sha": "6d8379501caf263fa2def609c91601d8b4bb4298",
|
||||||
|
"shortSha": "6d83795",
|
||||||
|
"subject": "refactor: replace custom API fetch logic with requestJson utility across multiple pages",
|
||||||
|
"author": "Denozordec",
|
||||||
|
"type": "refactor"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sha": "5f31bb47fb11592ef1dd1c576105efb07cff584e",
|
||||||
|
"shortSha": "5f31bb4",
|
||||||
|
"subject": "chore: synchronize pending app/backend updates and repository hygiene",
|
||||||
|
"author": "Denozordec",
|
||||||
|
"type": "chore"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sha": "bdb9b72fac5e9cf03faa6e8df463759a9defbf24",
|
||||||
|
"shortSha": "bdb9b72",
|
||||||
|
"subject": "Init 2",
|
||||||
|
"author": "Denozordec",
|
||||||
|
"type": "other"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sha": "ce00c4c671834df0c3277480ecf1a7bbd03cf3f4",
|
||||||
|
"shortSha": "ce00c4c",
|
||||||
|
"subject": "Update .gitignore to include additional build and log files",
|
||||||
|
"author": "Denozordec",
|
||||||
|
"type": "other"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sha": "f3f831653f48c24ae02d15cf10b3e929d4d63e14",
|
||||||
|
"shortSha": "f3f8316",
|
||||||
|
"subject": "Init commit",
|
||||||
|
"author": "Denozordec",
|
||||||
|
"type": "other"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,40 @@
|
|||||||
|
# v1.1.0
|
||||||
|
|
||||||
|
Версия **1.1.0**.
|
||||||
|
|
||||||
|
## feat
|
||||||
|
|
||||||
|
- feat: update application versioning and enhance release management (`9ccc845`, Denozordec)
|
||||||
|
- feat: enhance network configuration handling in updater script (`f282585`, Denozordec)
|
||||||
|
- feat: refactor theme management and remove next-themes dependency (`40e2040`, Denozordec)
|
||||||
|
- feat: implement database backup and restore functionality in settings page (`bb07ba0`, Denozordec)
|
||||||
|
- feat: implement internet path functionality with backend support (`b9a75b6`, Denozordec)
|
||||||
|
- feat: integrate sonner for toast notifications and enhance UI feedback (`11ad94f`, Denozordec)
|
||||||
|
- feat: enhance backups page with live data loading and backup job management (`84ecd4f`, Denozordec)
|
||||||
|
|
||||||
|
## chore
|
||||||
|
|
||||||
|
- chore: enhance data source configuration and mock data handling (`1fefed2`, Denozordec)
|
||||||
|
- chore: enhance frontend configuration for backend integration (`4489dfb`, Denozordec)
|
||||||
|
- chore: add server and server_snapshots tables to database schema (`4b240d7`, Denozordec)
|
||||||
|
- chore: enhance image reference resolution in updater script (`63252ae`, Denozordec)
|
||||||
|
- chore: enhance Dockerfile for backend to rebuild better-sqlite3 (`a359874`, Denozordec)
|
||||||
|
- chore: update Docker Compose configuration for data volume management (`4ec247f`, Denozordec)
|
||||||
|
- chore: streamline Docker workflow and enhance build efficiency (`2697a35`, Denozordec)
|
||||||
|
- chore: add updater image configuration to Docker workflow (`7295545`, Denozordec)
|
||||||
|
- chore: enhance Dockerfiles and package.json for improved build process (`a5b5a2a`, Denozordec)
|
||||||
|
- chore: update Dockerfiles to ignore scripts during npm install (`0159686`, Denozordec)
|
||||||
|
- chore: configure dynamic image naming for frontend and backend in Docker workflow (`02119a3`, Denozordec)
|
||||||
|
- chore: update configuration and dependencies (`c36994c`, Denozordec)
|
||||||
|
- chore: isolate frontend and backend via npm workspaces and @mmapp/contracts (`dfbaa85`, Denozordec)
|
||||||
|
- chore: synchronize pending app/backend updates and repository hygiene (`5f31bb4`, Denozordec)
|
||||||
|
|
||||||
|
## refactor
|
||||||
|
|
||||||
|
- refactor: replace custom API fetch logic with requestJson utility across multiple pages (`6d83795`, Denozordec)
|
||||||
|
|
||||||
|
## other
|
||||||
|
|
||||||
|
- Init 2 (`bdb9b72`, Denozordec)
|
||||||
|
- Update .gitignore to include additional build and log files (`ce00c4c`, Denozordec)
|
||||||
|
- Init commit (`f3f8316`, Denozordec)
|
||||||
|
|||||||
@@ -169,9 +169,9 @@ function writeGithubOutput(values) {
|
|||||||
function main() {
|
function main() {
|
||||||
const latestTag = getLatestTag()
|
const latestTag = getLatestTag()
|
||||||
const baseFromTag = latestTag?.replace(/^v/, "") ?? baseVersion
|
const baseFromTag = latestTag?.replace(/^v/, "") ?? baseVersion
|
||||||
const commits = latestTag ? getCommitsSince(latestTag) : []
|
const commits = getCommitsSince(latestTag)
|
||||||
|
|
||||||
if (!latestTag || commits.length === 0) {
|
if (commits.length === 0) {
|
||||||
mkdirSync(outputDir, { recursive: true })
|
mkdirSync(outputDir, { recursive: true })
|
||||||
writeFileSync(join(outputDir, "release_notes.md"), "", "utf8")
|
writeFileSync(join(outputDir, "release_notes.md"), "", "utf8")
|
||||||
writeFileSync(
|
writeFileSync(
|
||||||
|
|||||||
@@ -36,7 +36,6 @@ jobs:
|
|||||||
run: node .ci/scripts/compute-release.mjs
|
run: node .ci/scripts/compute-release.mjs
|
||||||
|
|
||||||
- name: Upload release artifacts
|
- name: Upload release artifacts
|
||||||
if: steps.release.outputs.should_release == 'true'
|
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: release-artifacts
|
name: release-artifacts
|
||||||
@@ -46,7 +45,6 @@ jobs:
|
|||||||
|
|
||||||
backend-image:
|
backend-image:
|
||||||
needs: prepare-release
|
needs: prepare-release
|
||||||
if: needs.prepare-release.outputs.should_release == 'true'
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
@@ -111,7 +109,6 @@ jobs:
|
|||||||
|
|
||||||
frontend-image:
|
frontend-image:
|
||||||
needs: prepare-release
|
needs: prepare-release
|
||||||
if: needs.prepare-release.outputs.should_release == 'true'
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
@@ -194,7 +191,6 @@ jobs:
|
|||||||
|
|
||||||
updater-image:
|
updater-image:
|
||||||
needs: prepare-release
|
needs: prepare-release
|
||||||
if: needs.prepare-release.outputs.should_release == 'true'
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
@@ -320,12 +316,11 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
notify-webhook:
|
notify-webhook:
|
||||||
if: ${{ secrets.DEPLOY_WEBHOOK_URL != '' && needs.prepare-release.outputs.should_release == 'true' }}
|
if: ${{ secrets.DEPLOY_WEBHOOK_URL != '' }}
|
||||||
needs:
|
needs:
|
||||||
- prepare-release
|
- prepare-release
|
||||||
- backend-image
|
- backend-image
|
||||||
- frontend-image
|
- frontend-image
|
||||||
- publish-release
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Notify deploy webhook
|
- name: Notify deploy webhook
|
||||||
|
|||||||
@@ -210,7 +210,8 @@ npm --prefix backend run db:studio
|
|||||||
- Базовая версия: **`v1.0.0`**. Линия semver: `1.x.y` (major `2.x` вне scope).
|
- Базовая версия: **`v1.0.0`**. Линия semver: `1.x.y` (major `2.x` вне scope).
|
||||||
- Job **`prepare-release`** запускает [`.ci/scripts/compute-release.mjs`](.ci/scripts/compute-release.mjs): коммиты с последнего тега `v*.*.*`, bump по **Conventional Commits**.
|
- Job **`prepare-release`** запускает [`.ci/scripts/compute-release.mjs`](.ci/scripts/compute-release.mjs): коммиты с последнего тега `v*.*.*`, bump по **Conventional Commits**.
|
||||||
- **`feat` / `feat!` / `BREAKING CHANGE`** → minor (`1.x.0`); **`fix`**, `chore`, `docs`, `refactor`, `style`, `test`, `build`, `ci` → patch (`1.0.x`).
|
- **`feat` / `feat!` / `BREAKING CHANGE`** → minor (`1.x.0`); **`fix`**, `chore`, `docs`, `refactor`, `style`, `test`, `build`, `ci` → patch (`1.0.x`).
|
||||||
- Если после последнего тега нет новых коммитов, релиз и сборка образов **пропускаются**.
|
- Если после последнего тега нет новых коммитов, **релиз** пропускается; Docker-образы при этом всё равно собираются и публикуются с `:latest` и `:<sha>`.
|
||||||
|
- Первый релиз без тега `v1.0.0` возможен автоматически: CI берёт историю `HEAD`, считает bump от `1.0.0` и создаёт тег (например `v1.1.0` при `feat:`).
|
||||||
- Job **`publish-release`**: annotated tag `v1.2.3`, Gitea Release на `https://git.shts.su` (markdown notes), образы с тегами `:latest`, `:<sha>`, `:<semver>`.
|
- Job **`publish-release`**: annotated tag `v1.2.3`, Gitea Release на `https://git.shts.su` (markdown notes), образы с тегами `:latest`, `:<sha>`, `:<semver>`.
|
||||||
- UI: версия в sidebar и страница **`/releases`**; manifest `public/release-manifest.json` (в CI подставляется из артефакта).
|
- UI: версия в sidebar и страница **`/releases`**; manifest `public/release-manifest.json` (в CI подставляется из артефакта).
|
||||||
- Bootstrap: один раз выставить `1.0.0` в workspace `package.json` и создать тег **`v1.0.0`** на `main` перед первым автоматическим bump.
|
- Bootstrap: один раз выставить `1.0.0` в workspace `package.json` и создать тег **`v1.0.0`** на `main` перед первым автоматическим bump.
|
||||||
|
|||||||
Reference in New Issue
Block a user