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: true - 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