Compare commits

...

21 Commits

Author SHA1 Message Date
datadunia aa620dec6a fix(ci): restore swagger docs step + fix release needs (remove build-docs dependency)
CI / server-core-test (push) Has been skipped
CI / device-agent-test (push) Has been skipped
CI / dashboard-test (push) Has been skipped
CI / build-server-core (push) Successful in 6m18s
CI / build-device-agent (push) Failing after 2m21s
CI / release (push) Has been skipped
CI / build-dashboard (push) Successful in 1m59s
CI / build-docs (push) Has been skipped
2026-06-18 09:44:29 +07:00
datadunia 48340aa7a3 ci: fix missing closing quote in release condition
CI / server-core-test (push) Has been skipped
CI / device-agent-test (push) Has been skipped
CI / dashboard-test (push) Has been skipped
CI / build-server-core (push) Failing after 2m12s
CI / build-dashboard (push) Has been cancelled
CI / build-docs (push) Has been cancelled
CI / release (push) Has been cancelled
CI / build-device-agent (push) Has been cancelled
2026-06-18 09:33:25 +07:00
datadunia 68ebfbaad3 ci: revert to 3-section structure (test/build/docs) with proper tag conditions 2026-06-18 09:23:56 +07:00
datadunia 46ff7ca737 fix(ci): add missing closing quote in release-stable if condition
CI / build-server-core-dev (push) Failing after 1m55s
CI / build-device-agent-dev (push) Failing after 2m20s
CI / server-core-test (push) Has been skipped
CI / device-agent-test (push) Has been skipped
CI / dashboard-test (push) Has been skipped
CI / release-dev (push) Has been cancelled
CI / build-server-core-release (push) Has been cancelled
CI / build-device-agent-release (push) Has been cancelled
CI / build-dashboard-release (push) Has been cancelled
CI / build-docs-release (push) Has been cancelled
CI / release-stable (push) Has been cancelled
CI / build-dashboard-dev (push) Has been cancelled
2026-06-18 09:14:31 +07:00
datadunia 08b152a370 feat(ci): skip build if no source changes (cache build output by hash) 2026-06-18 09:09:51 +07:00
datadunia 6f22aad1ad ci: restructure pipeline - test only for test tags, build only for dev/beta, build+docs for release 2026-06-18 09:01:36 +07:00
datadunia d21863ce8f perf: remove slow swag init from CI (20min → 1min build) 2026-06-18 08:51:51 +07:00
datadunia eba741cd97 feat: device-agent v1.0.0-dev.30 - auto-elevate admin + key format fix
CI / server-core-test (push) Has been skipped
CI / device-agent-test (push) Has been skipped
CI / dashboard-test (push) Has been skipped
CI / build-device-agent (push) Has been cancelled
CI / build-dashboard (push) Has been cancelled
CI / build-docs (push) Has been cancelled
CI / release (push) Has been cancelled
CI / build-server-core (push) Has been cancelled
2026-06-18 08:19:50 +07:00
datadunia fd9da1fd71 fix: device-agent v1.0.0-dev.29 - base64→hex key conversion for WireGuard IPC
CI / server-core-test (push) Has been skipped
CI / device-agent-test (push) Has been skipped
CI / dashboard-test (push) Has been skipped
CI / build-device-agent (push) Has been cancelled
CI / build-dashboard (push) Has been cancelled
CI / build-docs (push) Has been cancelled
CI / release (push) Has been cancelled
CI / build-server-core (push) Has been cancelled
2026-06-18 08:17:39 +07:00
datadunia d46bc11485 fix: device-agent v1.0.0-dev.28 - remove config file persistence (security fix)
CI / server-core-test (push) Has been skipped
CI / device-agent-test (push) Has been skipped
CI / dashboard-test (push) Has been skipped
CI / build-dashboard (push) Successful in 2m2s
CI / build-docs (push) Successful in 55s
CI / build-server-core (push) Successful in 7m56s
CI / build-device-agent (push) Successful in 3m5s
CI / release (push) Successful in 28s
2026-06-18 08:01:44 +07:00
datadunia f1fa0acfa7 fix: device-agent v1.0.0-dev.27 - fix winres.json (remove broken icon, UAC manifest only)
CI / server-core-test (push) Has been skipped
CI / dashboard-test (push) Has been skipped
CI / device-agent-test (push) Has been skipped
CI / build-docs (push) Successful in 55s
CI / build-server-core (push) Successful in 18m18s
CI / build-device-agent (push) Successful in 2m33s
CI / build-dashboard (push) Successful in 2m13s
CI / release (push) Successful in 27s
2026-06-18 07:07:57 +07:00
datadunia a5c1ea1c1b feat: device-agent v1.0.0-dev.26 - embedded UAC manifest (auto admin prompt)
CI / build-dashboard (push) Successful in 1m30s
CI / server-core-test (push) Has been skipped
CI / device-agent-test (push) Has been skipped
CI / dashboard-test (push) Has been skipped
CI / build-server-core (push) Successful in 5m38s
CI / build-device-agent (push) Successful in 2m28s
CI / build-docs (push) Successful in 52s
CI / release (push) Successful in 25s
2026-06-18 06:29:44 +07:00
datadunia 4dbc0bd9f3 fix: device-agent v1.0.0-dev.25 - isServiceAutoStart stub for Linux
CI / build-server-core (push) Successful in 3m45s
CI / build-dashboard (push) Successful in 1m56s
CI / build-docs (push) Successful in 52s
CI / server-core-test (push) Has been skipped
CI / device-agent-test (push) Has been skipped
CI / dashboard-test (push) Has been skipped
CI / build-device-agent (push) Successful in 3m2s
CI / release (push) Successful in 27s
2026-06-18 06:07:51 +07:00
datadunia 94059ee9e6 chore: update device-agent (UAC + service menu)
CI / server-core-test (push) Has been skipped
CI / device-agent-test (push) Has been skipped
CI / dashboard-test (push) Has been skipped
CI / build-server-core (push) Successful in 3m44s
CI / build-dashboard (push) Successful in 1m29s
CI / build-docs (push) Successful in 53s
CI / build-device-agent (push) Failing after 1m27s
CI / release (push) Has been skipped
2026-06-18 05:35:34 +07:00
datadunia 06d8876b04 chore: update server-core submodule ref 2026-06-18 04:11:45 +07:00
datadunia 90b3baa2fb chore: update server-core submodule ref 2026-06-18 03:55:52 +07:00
datadunia 71224721d3 chore: update server-core submodule ref (BuildKit cache mounts) 2026-06-18 03:33:58 +07:00
datadunia 56f44f5b95 chore: update dashboard-ui + server-core submodule refs (docker improvements) 2026-06-18 03:17:19 +07:00
datadunia 08ac26c698 docs: add device agent architecture 2026-06-18 03:02:40 +07:00
datadunia ac0755977c chore: update server-core (HWID collision fix)
CI / build-device-agent (push) Successful in 2m40s
CI / server-core-test (push) Has been skipped
CI / device-agent-test (push) Has been skipped
CI / dashboard-test (push) Has been skipped
CI / build-server-core (push) Successful in 5m31s
CI / build-dashboard (push) Successful in 1m35s
CI / build-docs (push) Successful in 1m9s
CI / release (push) Successful in 29s
2026-06-18 03:00:50 +07:00
datadunia c1490421ba chore: update device-agent (local config cache)
CI / server-core-test (push) Has been skipped
CI / device-agent-test (push) Has been skipped
CI / dashboard-test (push) Has been skipped
CI / build-server-core (push) Successful in 5m29s
CI / build-device-agent (push) Successful in 2m28s
CI / build-dashboard (push) Successful in 1m24s
CI / build-docs (push) Successful in 54s
CI / release (push) Successful in 26s
2026-06-18 02:42:41 +07:00
8 changed files with 91 additions and 25 deletions
+14 -2
View File
@@ -23,22 +23,34 @@ jobs:
with:
node-version: '24'
- name: Hash source files
id: hash-src
run: echo "hash=$(find apps/dashboard-ui -type f \( -name '*.vue' -o -name '*.ts' -o -name '*.js' -o -name '*.css' -o -name '*.json' -o -name '*.html' \) | sort | xargs sha256sum | sha256sum | cut -d' ' -f1)" >> "$GITHUB_OUTPUT"
- uses: actions/cache@v3
id: cache-build
with:
path: apps/dashboard-ui/dist
key: build-dashboard-${{ steps.hash-src.outputs.hash }}
- name: Hash package-lock
id: hash-npm
run: echo "hash=$(sha256sum apps/dashboard-ui/package-lock.json | cut -d' ' -f1)" >> "$GITHUB_OUTPUT"
- uses: actions/cache@v3
id: cache-npm
with:
path: |
~/.npm
path: ~/.npm
key: npm-dashboard-${{ steps.hash-npm.outputs.hash }}
restore-keys: npm-dashboard-
- name: Install
if: steps.cache-build.outputs.cache-hit != 'true'
working-directory: apps/dashboard-ui
run: npm ci || npm install
- name: Build
if: steps.cache-build.outputs.cache-hit != 'true'
working-directory: apps/dashboard-ui
run: npm run build
+22
View File
@@ -24,7 +24,29 @@ jobs:
go-version: '1.26'
cache: true
- uses: https://gitea.com/actions/go-hashfiles@v0.0.1
id: hash-src
with:
patterns: |
apps/device-agent/**/*.go
apps/device-agent/go.mod
apps/device-agent/go.sum
- uses: actions/cache@v3
id: cache-build
with:
path: apps/device-agent/bin
key: build-device-agent-${{ steps.hash-src.outputs.hash }}
- name: Generate Windows resources (UAC manifest + icon)
if: steps.cache-build.outputs.cache-hit != 'true'
working-directory: apps/device-agent
run: |
go install github.com/tc-hib/go-winres@latest
go-winres make
- name: Build all platforms
if: steps.cache-build.outputs.cache-hit != 'true'
working-directory: apps/device-agent
shell: bash
run: |
+18
View File
@@ -24,13 +24,31 @@ jobs:
go-version: '1.26'
cache: true
- uses: https://gitea.com/actions/go-hashfiles@v0.0.1
id: hash-src
with:
patterns: |
apps/server-core/**/*.go
apps/server-core/go.mod
apps/server-core/go.sum
- uses: actions/cache@v3
id: cache-build
with:
path: |
apps/server-core/bin
apps/server-core/docs
key: build-server-core-${{ steps.hash-src.outputs.hash }}
- name: Generate Swagger docs
if: steps.cache-build.outputs.cache-hit != 'true'
working-directory: apps/server-core
run: |
go install github.com/swaggo/swag/cmd/swag@v1.16.6
swag init -g main.go --parseDependency --parseInternal
- name: Build
if: steps.cache-build.outputs.cache-hit != 'true'
working-directory: apps/server-core
run: go build -o bin/server-core .
+23 -20
View File
@@ -10,9 +10,11 @@ on:
- 'v[0-9]*.[0-9]*.[0-9]'
jobs:
# --- TESTS (test tags + stable release tags) ---
# ====================================================================
# TESTS — test tags only
# ====================================================================
server-core-test:
if: contains(gitea.ref_name, 'test') || (!contains(gitea.ref_name, 'dev') && !contains(gitea.ref_name, 'beta'))
if: contains(gitea.ref_name, 'test')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
@@ -26,17 +28,13 @@ jobs:
- uses: actions/setup-go@v5
with:
go-version: '1.26'
- name: Generate swagger docs
working-directory: apps/server-core
run: |
go install github.com/swaggo/swag/cmd/swag@v1.16.6
swag init -g main.go --parseDependency --parseInternal
cache: true
- name: Test (skip nftables - needs root)
working-directory: apps/server-core
run: go test $(go list ./... | grep -v internal/firewall) -tags dev -cover -count=1
device-agent-test:
if: contains(gitea.ref_name, 'test') || (!contains(gitea.ref_name, 'dev') && !contains(gitea.ref_name, 'beta'))
if: contains(gitea.ref_name, 'test')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
@@ -50,12 +48,13 @@ jobs:
- uses: actions/setup-go@v5
with:
go-version: '1.26'
cache: true
- name: Test
working-directory: apps/device-agent
run: go test ./... -cover
dashboard-test:
if: contains(gitea.ref_name, 'test') || (!contains(gitea.ref_name, 'dev') && !contains(gitea.ref_name, 'beta'))
if: contains(gitea.ref_name, 'test')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
@@ -76,38 +75,42 @@ jobs:
working-directory: apps/dashboard-ui
run: npm run build
# --- BUILD + RELEASE (dev/beta/release tags) ---
# ====================================================================
# BUILD — dev/beta/release tags (skip test tags)
# ====================================================================
build-server-core:
if: always() && !contains(gitea.ref_name, 'test') && !failure()
needs: [server-core-test, device-agent-test, dashboard-test]
if: "!contains(gitea.ref_name, 'test')"
runs-on: ubuntu-latest
uses: ./.gitea/workflows/build_server_core.yaml
secrets: inherit
build-device-agent:
if: always() && !contains(gitea.ref_name, 'test') && !failure()
needs: [server-core-test, device-agent-test, dashboard-test]
if: "!contains(gitea.ref_name, 'test')"
runs-on: ubuntu-latest
uses: ./.gitea/workflows/build_device_agent.yaml
secrets: inherit
build-dashboard:
if: always() && !contains(gitea.ref_name, 'test') && !failure()
needs: [server-core-test, device-agent-test, dashboard-test]
if: "!contains(gitea.ref_name, 'test')"
runs-on: ubuntu-latest
uses: ./.gitea/workflows/build_dashboard.yaml
secrets: inherit
# ====================================================================
# DOCS — release tags only (skip dev/beta/test)
# ====================================================================
build-docs:
if: always() && !contains(gitea.ref_name, 'test') && !failure()
needs: [server-core-test, device-agent-test, dashboard-test]
if: "!contains(gitea.ref_name, 'dev') && !contains(gitea.ref_name, 'beta') && !contains(gitea.ref_name, 'test')"
runs-on: ubuntu-latest
uses: ./.gitea/workflows/docs_call.yaml
secrets: inherit
# ====================================================================
# RELEASE — dev/beta/release tags (skip test)
# ====================================================================
release:
if: always() && !contains(gitea.ref_name, 'test') && !failure()
needs: [build-server-core, build-device-agent, build-dashboard, build-docs]
if: "!contains(gitea.ref_name, 'test') && !failure()"
needs: [build-server-core, build-device-agent, build-dashboard]
uses: ./.gitea/workflows/release_call.yaml
with:
prerelease: ${{ contains(gitea.ref_name, 'dev') }}
+11
View File
@@ -21,6 +21,17 @@ jobs:
with:
node-version: '24'
- name: Hash package-lock
id: hash-npm
run: echo "hash=$(sha256sum apps/docs/package-lock.json 2>/dev/null || echo 'none') | cut -d' ' -f1)" >> "$GITHUB_OUTPUT"
- uses: actions/cache@v3
with:
path: |
~/.npm
key: npm-docs-${{ steps.hash-npm.outputs.hash }}
restore-keys: npm-docs-
- name: Install
working-directory: apps/docs
run: npm ci || npm install