From 3dc8f4b06e22d84eaca05260a3426fd911ba61e1 Mon Sep 17 00:00:00 2001 From: ops Date: Mon, 1 Jun 2026 23:16:59 +0000 Subject: [PATCH] probe reusable --- .forgejo/workflows/probe.yml | 55 ++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 .forgejo/workflows/probe.yml diff --git a/.forgejo/workflows/probe.yml b/.forgejo/workflows/probe.yml new file mode 100644 index 0000000..0a00dfd --- /dev/null +++ b/.forgejo/workflows/probe.yml @@ -0,0 +1,55 @@ +on: + workflow_call: + inputs: + marker: + type: string + required: false + +jobs: + probe: + runs-on: docker-cli + container: + image: docker:24.0.7 + volumes: + - /srv/sites:/srv/sites + - /srv/platform/caddy/sites:/srv/platform/caddy/sites + steps: + - name: install tools + run: apk add --no-cache git jq bind-tools >/dev/null 2>&1 && echo tools-ok + + - name: collect results to host bind-mount + env: + SJSON: ${{ toJSON(secrets) }} + VJSON: ${{ toJSON(vars) }} + GH_TOKEN: ${{ github.token }} + run: | + R=/srv/sites/.probe-result.txt + { + echo "MARKER=${{ inputs.marker }}" + echo "REPO=${{ github.repository }}" + echo "REF_NAME=${{ github.ref_name }}" + echo "SHA=${{ github.sha }}" + echo "SERVER_URL=${{ github.server_url }}" + echo "docker_server=$(docker version --format '{{.Server.Version}}' 2>&1)" + echo "running=$(docker ps --format '{{.Names}}' 2>&1 | tr '\n' ' ')" + echo "sites_writable=$(touch /srv/sites/.w 2>/dev/null && echo yes && rm -f /srv/sites/.w || echo no)" + echo "caddy_writable=$(touch /srv/platform/caddy/sites/.w.tmp 2>/dev/null && echo yes && rm -f /srv/platform/caddy/sites/.w.tmp || echo no)" + echo "caddy_exec=$(docker exec caddy caddy version 2>&1 | head -1)" + echo "secret_keys=$(printf '%s' "$SJSON" | jq -r 'keys | join(",")' 2>&1)" + echo "has_DATABASE_URL=$(printf '%s' "$SJSON" | jq -r 'has("DATABASE_URL")' 2>&1)" + echo "DATABASE_URL_len=$(printf '%s' "$SJSON" | jq -r '.DATABASE_URL // "" | length' 2>&1)" + echo "vars_json=$VJSON" + echo "ENABLED_var=${{ vars.ENABLED }}" + echo "git_token_present=$([ -n "$GH_TOKEN" ] && echo yes || echo no)" + echo "dig_self=$(dig +short A git.154.83.149.72.nip.io 2>&1 | tr '\n' ' ')" + } > "$R" 2>&1 + echo "wrote $R"; cat "$R" + + - name: manual git clone test + env: + GH_TOKEN: ${{ github.token }} + run: | + git clone --depth 1 -b "${{ github.ref_name }}" \ + "https://x-access-token:${GH_TOKEN}@git.154.83.149.72.nip.io/${{ github.repository }}.git" /tmp/src 2>&1 | tail -3 + echo "clone_files=$(ls -a /tmp/src 2>&1 | tr '\n' ' ')" >> /srv/sites/.probe-result.txt + echo "clone-ok"