Files
Nexus-Guard-Suite/.gitea/workflows/build_device_agent.yaml
T
datadunia 9d6c2abb9f
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
fix(ci): cache Go SDK + disable setup-go built-in cache
2026-06-17 17:58:25 +07:00

78 lines
2.3 KiB
YAML

name: Build Device Agent
on:
workflow_call:
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/"
- uses: actions/checkout@v4
with:
submodules: true
fetch-depth: 0
token: ${{ secrets.BUILD_TOKEN }}
persist-credentials: true
- uses: actions/setup-go@v5
with:
go-version: '1.26'
cache: false
- uses: https://gitea.com/actions/go-hashfiles@v0.0.1
id: hash-go
with:
patterns: |
apps/device-agent/go.mod
apps/device-agent/go.sum
- uses: actions/cache@v3
with:
path: |
/toolcache/go
/root/go/pkg/mod
/root/.cache/go-build
key: go-device-agent-${{ steps.hash-go.outputs.hash }}
restore-keys: go-device-agent-
- name: Build all platforms
working-directory: apps/device-agent
shell: bash
run: |
set -e
mkdir -p bin
for PAIR in linux/amd64 linux/arm64 windows/amd64; do
GOOS="${PAIR%%/*}"
GOARCH="${PAIR##*/}"
EXT=""
if [ "$GOOS" = "windows" ]; then EXT=".exe"; fi
OUT="bin/nexus-device-agent-${GOOS}-${GOARCH}${EXT}"
echo "Building $OUT ..."
CGO_ENABLED=0 GOOS="$GOOS" GOARCH="$GOARCH" go build -o "$OUT" .
done
echo "=== Build output ==="
ls -la bin/
- name: Upload linux/amd64
uses: actions/upload-artifact@v3
with:
name: nexus-device-agent-linux-amd64
path: apps/device-agent/bin/nexus-device-agent-linux-amd64
- name: Upload linux/arm64
uses: actions/upload-artifact@v3
with:
name: nexus-device-agent-linux-arm64
path: apps/device-agent/bin/nexus-device-agent-linux-arm64
- name: Upload windows/amd64
uses: actions/upload-artifact@v3
with:
name: nexus-device-agent-windows-amd64
path: apps/device-agent/bin/nexus-device-agent-windows-amd64.exe