Compare commits

..

23 Commits

Author SHA1 Message Date
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
datadunia 2d366c4619 fix(ci): use setup-go built-in cache, remove go-hashfiles and actions/cache from Go builds
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 3m34s
CI / build-device-agent (push) Successful in 2m20s
CI / build-dashboard (push) Successful in 1m34s
CI / build-docs (push) Successful in 51s
CI / release (push) Successful in 26s
2026-06-18 02:23:45 +07:00
datadunia dad057528c chore: update device-agent (embed wintun.dll in exe)
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 4m1s
CI / build-device-agent (push) Successful in 14m24s
CI / build-dashboard (push) Successful in 3m0s
CI / build-docs (push) Successful in 55s
CI / release (push) Successful in 27s
2026-06-17 18:18:51 +07:00
datadunia 8ae9149620 fix: same HWID re-provisioning + wintun.dll search path
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 12m40s
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-17 18:05:04 +07:00
datadunia 9d6c2abb9f fix(ci): cache Go SDK + disable setup-go built-in 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-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-17 17:58:25 +07:00
datadunia 4c9e54aaa3 fix(ci): replace go-hashfiles with shell hash for dashboard (no Go installed)
CI / build-docs (push) Successful in 1m10s
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 2m52s
CI / build-device-agent (push) Successful in 2m38s
CI / build-dashboard (push) Successful in 6m15s
CI / release (push) Successful in 32s
2026-06-17 15:07:21 +07:00
datadunia 290af48007 ci: add Gitea-compatible caching (RUNNER_TOOL_CACHE + actions/cache@v3 + go-hashfiles)
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 15m18s
CI / build-device-agent (push) Successful in 5m51s
CI / build-docs (push) Successful in 1m13s
CI / build-dashboard (push) Failing after 1m38s
CI / release (push) Has been skipped
Per Gitea tutorial: add RUNNER_TOOL_CACHE=/toolcache env, use actions/cache@v3
(not v4), and go-hashfiles instead of hashFiles() which is unsupported.
2026-06-17 14:23:51 +07:00
datadunia 9a2212d691 revert(ci): remove actions/cache@v4 - hangs on act_runner v0.6.1
CI / build-server-core (push) Successful in 5m41s
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 2m11s
CI / build-dashboard (push) Successful in 1m11s
CI / build-docs (push) Successful in 1m9s
CI / release (push) Successful in 29s
actions/cache@v4 not compatible with self-hosted act_runner.
Builds complete in 3-5min without cache - acceptable.
2026-06-17 13:54:58 +07:00
datadunia 6f57540490 ci: add actions/cache@v4 for Go modules, Go build cache, and npm cache
CI / build-server-core (push) Has been cancelled
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
- server-core: Go module + build cache (keyed by go.sum)
- dashboard-ui: npm cache (keyed by package-lock.json)
- device-agent: Go module + build cache (keyed by go.sum)
First run populates cache, subsequent runs restore from cache.
2026-06-17 13:39:31 +07:00
datadunia 8c1b15a78e chore: update device-agent (bundle wintun.dll)
CI / build-server-core (push) Successful in 3m55s
CI / build-dashboard (push) Successful in 1m39s
CI / release (push) Successful in 37s
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 1m43s
CI / build-docs (push) Successful in 1m21s
2026-06-17 13:30:03 +07:00
datadunia 52fb2bb5d3 chore: update dashboard-ui (HWID column + search + conflict badge)
CI / build-dashboard (push) Successful in 1m22s
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 3m51s
CI / build-device-agent (push) Successful in 1m55s
CI / build-docs (push) Successful in 1m7s
CI / release (push) Successful in 35s
2026-06-17 13:11:11 +07:00
datadunia 2ce9dbd4e8 chore: update device-agent (fix double slash URLs)
CI / server-core-test (push) Has been skipped
CI / device-agent-test (push) Has been skipped
CI / build-device-agent (push) Successful in 1m49s
CI / build-dashboard (push) Successful in 1m7s
CI / build-docs (push) Successful in 49s
CI / release (push) Successful in 26s
CI / dashboard-test (push) Has been skipped
CI / build-server-core (push) Successful in 3m37s
2026-06-17 12:59:28 +07:00
datadunia f85db30c2e feat: Reset Device feature + HWID display in Dashboard
CI / build-server-core (push) Successful in 4m38s
CI / build-device-agent (push) Successful in 3m29s
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 1m18s
CI / build-docs (push) Successful in 58s
CI / release (push) Successful in 29s
2026-06-17 12:30:06 +07:00
datadunia fc9afd1720 fix(ci): use always()!failure() so builds run when test jobs are skipped
CI / build-server-core (push) Successful in 3m13s
CI / release (push) Successful in 28s
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 1m47s
CI / build-dashboard (push) Successful in 57s
CI / build-docs (push) Successful in 51s
Gitea Actions skips dependent jobs when ALL needed jobs are skipped,
unlike GitHub Actions. Adding always()!failure() ensures builds run
for dev/beta tags (tests skipped) while still blocking if tests fail.
2026-06-17 11:48:23 +07:00
datadunia c23e0829cd feat(ci): add draft/prerelease mapping, enforce tests before stable release
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) Has been skipped
CI / build-device-agent (push) Has been skipped
CI / build-dashboard (push) Has been skipped
CI / build-docs (push) Has been skipped
CI / release (push) Has been skipped
- release_call.yaml: add draft input, use draft+prerelease in JSON body
- ci.yml test jobs: run for test tags AND stable release tags
- ci.yml build jobs: add needs on test jobs (skipped jobs dont block)
- ci.yml release: draft=true for beta, prerelease=true for dev, plain for stable
2026-06-17 11:45:57 +07:00
8 changed files with 44 additions and 19 deletions
+13
View File
@@ -6,6 +6,8 @@ on:
jobs:
build:
runs-on: ubuntu-latest
env:
RUNNER_TOOL_CACHE: /toolcache
steps:
- name: Configure git auth for submodules
run: git config --global url."https://x-access-token:${{ secrets.BUILD_TOKEN }}@git.datadunia.com/".insteadOf "https://git.datadunia.com/"
@@ -21,6 +23,17 @@ jobs:
with:
node-version: '24'
- 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
with:
path: |
~/.npm
key: npm-dashboard-${{ steps.hash-npm.outputs.hash }}
restore-keys: npm-dashboard-
- name: Install
working-directory: apps/dashboard-ui
run: npm ci || npm install
+3
View File
@@ -6,6 +6,8 @@ on:
jobs:
cross-build:
runs-on: ubuntu-latest
env:
RUNNER_TOOL_CACHE: /toolcache
steps:
- name: Configure git auth for submodules
run: git config --global url."https://x-access-token:${{ secrets.BUILD_TOKEN }}@git.datadunia.com/".insteadOf "https://git.datadunia.com/"
@@ -20,6 +22,7 @@ jobs:
- uses: actions/setup-go@v5
with:
go-version: '1.26'
cache: true
- name: Build all platforms
working-directory: apps/device-agent
+3 -4
View File
@@ -6,6 +6,8 @@ on:
jobs:
build:
runs-on: ubuntu-latest
env:
RUNNER_TOOL_CACHE: /toolcache
steps:
- name: Configure git auth for submodules
run: git config --global url."https://x-access-token:${{ secrets.BUILD_TOKEN }}@git.datadunia.com/".insteadOf "https://git.datadunia.com/"
@@ -20,10 +22,7 @@ jobs:
- uses: actions/setup-go@v5
with:
go-version: '1.26'
- name: Download Go modules
working-directory: apps/server-core
run: go mod download
cache: true
- name: Generate Swagger docs
working-directory: apps/server-core
+16 -11
View File
@@ -10,9 +10,9 @@ on:
- 'v[0-9]*.[0-9]*.[0-9]'
jobs:
# --- TESTS (only for test tags) ---
# --- TESTS (test tags + stable release tags) ---
server-core-test:
if: contains(gitea.ref_name, 'test')
if: contains(gitea.ref_name, 'test') || (!contains(gitea.ref_name, 'dev') && !contains(gitea.ref_name, 'beta'))
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
@@ -36,7 +36,7 @@ jobs:
run: go test $(go list ./... | grep -v internal/firewall) -tags dev -cover -count=1
device-agent-test:
if: contains(gitea.ref_name, 'test')
if: contains(gitea.ref_name, 'test') || (!contains(gitea.ref_name, 'dev') && !contains(gitea.ref_name, 'beta'))
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
@@ -55,7 +55,7 @@ jobs:
run: go test ./... -cover
dashboard-test:
if: contains(gitea.ref_name, 'test')
if: contains(gitea.ref_name, 'test') || (!contains(gitea.ref_name, 'dev') && !contains(gitea.ref_name, 'beta'))
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
@@ -76,35 +76,40 @@ jobs:
working-directory: apps/dashboard-ui
run: npm run build
# --- BUILD + RELEASE (only for dev/beta/release tags, no tests needed) ---
# --- BUILD + RELEASE (dev/beta/release tags) ---
build-server-core:
if: "!contains(gitea.ref_name, 'test')"
if: always() && !contains(gitea.ref_name, 'test') && !failure()
needs: [server-core-test, device-agent-test, dashboard-test]
runs-on: ubuntu-latest
uses: ./.gitea/workflows/build_server_core.yaml
secrets: inherit
build-device-agent:
if: "!contains(gitea.ref_name, 'test')"
if: always() && !contains(gitea.ref_name, 'test') && !failure()
needs: [server-core-test, device-agent-test, dashboard-test]
runs-on: ubuntu-latest
uses: ./.gitea/workflows/build_device_agent.yaml
secrets: inherit
build-dashboard:
if: "!contains(gitea.ref_name, 'test')"
if: always() && !contains(gitea.ref_name, 'test') && !failure()
needs: [server-core-test, device-agent-test, dashboard-test]
runs-on: ubuntu-latest
uses: ./.gitea/workflows/build_dashboard.yaml
secrets: inherit
build-docs:
if: "!contains(gitea.ref_name, 'test')"
if: always() && !contains(gitea.ref_name, 'test') && !failure()
needs: [server-core-test, device-agent-test, dashboard-test]
runs-on: ubuntu-latest
uses: ./.gitea/workflows/docs_call.yaml
secrets: inherit
release:
if: "!contains(gitea.ref_name, 'test')"
if: always() && !contains(gitea.ref_name, 'test') && !failure()
needs: [build-server-core, build-device-agent, build-dashboard, build-docs]
uses: ./.gitea/workflows/release_call.yaml
with:
prerelease: ${{ contains(gitea.ref_name, 'dev-') || contains(gitea.ref_name, 'beta') }}
prerelease: ${{ contains(gitea.ref_name, 'dev') }}
draft: ${{ contains(gitea.ref_name, 'beta') }}
secrets: inherit
+6 -1
View File
@@ -8,6 +8,11 @@ on:
required: false
type: boolean
default: false
draft:
description: 'Mark as draft'
required: false
type: boolean
default: false
permissions:
contents: write
@@ -65,7 +70,7 @@ jobs:
fi
# Create release
JSON_BODY=$(printf '{"tag_name":"%s","name":"%s","body":"Release %s","draft":false,"prerelease":%s}' "$TAG" "$TAG" "$TAG" "${{ inputs.prerelease }}")
JSON_BODY=$(printf '{"tag_name":"%s","name":"%s","body":"Release %s","draft":%s,"prerelease":%s}' "$TAG" "$TAG" "$TAG" "${{ inputs.draft }}" "${{ inputs.prerelease }}")
RELEASE_RESP=$(curl -s -X POST \
-H "Authorization: token $TOKEN" \
-H "Content-Type: application/json" \