name: CI on: push: tags: - 'dev-*' - 'v*-beta*' - 'v*-test*' - 'v[0-9]*.[0-9]*.[0-9]' jobs: server-core-test: runs-on: ubuntu-latest env: JWT_SECRET: ci-test-secret-key-for-testing-only-32chars!! SERVER_SALT: ci-test-salt-key-for-testing-only-32chars! 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/" - uses: actions/checkout@v4 with: submodules: true fetch-depth: 0 - 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 - 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: runs-on: ubuntu-latest 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/" - uses: actions/checkout@v4 with: submodules: true fetch-depth: 0 - uses: actions/setup-go@v5 with: go-version: '1.26' - name: Test working-directory: apps/device-agent run: go test ./... -cover dashboard-test: runs-on: ubuntu-latest 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/" - uses: actions/checkout@v4 with: submodules: true fetch-depth: 0 - uses: actions/setup-node@v4 with: node-version: '24' - name: Install working-directory: apps/dashboard-ui run: npm ci || npm install - name: Build working-directory: apps/dashboard-ui run: npm run build build-server-core: if: "!contains(gitea.ref_name, 'test')" needs: [server-core-test, device-agent-test, dashboard-test] runs-on: ubuntu-latest uses: ./.gitea/workflows/build_server_core.yaml build-device-agent: if: "!contains(gitea.ref_name, 'test')" needs: [server-core-test, device-agent-test, dashboard-test] runs-on: ubuntu-latest uses: ./.gitea/workflows/build_device_agent.yaml build-dashboard: if: "!contains(gitea.ref_name, 'test')" needs: [server-core-test, device-agent-test, dashboard-test] runs-on: ubuntu-latest uses: ./.gitea/workflows/build_dashboard.yaml build-docs: if: "!contains(gitea.ref_name, 'test')" needs: [server-core-test, device-agent-test, dashboard-test] runs-on: ubuntu-latest uses: ./.gitea/workflows/docs_call.yaml release: if: "!contains(gitea.ref_name, 'test')" 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') }} secrets: inherit