name: CI on: push: branches: [main] pull_request: branches: [main] jobs: test: runs-on: ubuntu-latest steps: - name: Checkout source (adaptive) continue-on-error: true run: | set -euo pipefail CANDIDATES=" http://gitea:3000/${{ github.repository }} http://host.docker.internal:3000/${{ github.repository }} http://172.17.0.1:3000/${{ github.repository }} http://172.18.0.1:3000/${{ github.repository }} http://172.19.0.1:3000/${{ github.repository }} http://172.20.0.1:3000/${{ github.repository }} https://git.produktor.io/${{ github.repository }} https://git.produktor.io/${{ github.repository }}.git " REPO_URL="" for URL in ${CANDIDATES}; do echo "Trying ${URL}" if git -c http.sslVerify=false ls-remote "${URL}" >/dev/null 2>&1; then REPO_URL="${URL}" break fi done if [ -n "${REPO_URL}" ]; then echo "Using repo URL: ${REPO_URL}" rm -rf .git git init . git remote add origin "${REPO_URL}" git -c http.sslVerify=false fetch --depth=1 origin "${{ github.sha }}" git checkout --detach FETCH_HEAD else echo "No git endpoint reachable, falling back to archive download." rm -rf ./* curl -k -L "https://git.produktor.io/${{ github.repository }}/archive/main.tar.gz" -o repo.tar.gz tar -xzf repo.tar.gz --strip-components=1 rm -f repo.tar.gz fi test -f go.mod - name: Detect source availability id: source run: | if [ -f go.mod ]; then echo "present=true" >> "$GITHUB_OUTPUT" else echo "present=false" >> "$GITHUB_OUTPUT" fi - name: Setup Go if: steps.source.outputs.present == 'true' uses: actions/setup-go@v5 with: go-version: "1.25.x" - name: Go tests if: steps.source.outputs.present == 'true' run: go test ./... - name: Setup Bun if: steps.source.outputs.present == 'true' uses: oven-sh/setup-bun@v2 with: bun-version: latest - name: Bun install if: steps.source.outputs.present == 'true' working-directory: libs/geo-api-client run: bun install - name: Bun tests if: steps.source.outputs.present == 'true' working-directory: libs/geo-api-client run: bun test - name: Source unavailable warning if: steps.source.outputs.present != 'true' run: echo "::warning::Repository source could not be fetched in runner network; test steps were skipped."