From 52773b7f5e463c575739b7e87d179a910015617e Mon Sep 17 00:00:00 2001 From: traveler Date: Mon, 12 Jan 2026 20:58:44 -0600 Subject: [PATCH] deploy --- .forgejo/workflows/deploy.yml | 37 +++++++++-------------------------- 1 file changed, 9 insertions(+), 28 deletions(-) diff --git a/.forgejo/workflows/deploy.yml b/.forgejo/workflows/deploy.yml index 930660f..a47e803 100644 --- a/.forgejo/workflows/deploy.yml +++ b/.forgejo/workflows/deploy.yml @@ -17,7 +17,7 @@ jobs: set -euo pipefail git config --global --add safe.directory "$PWD" git fetch origin - git checkout "$GITHUB_REF_NAME" + git checkout -B "$GITHUB_REF_NAME" "origin/$GITHUB_REF_NAME" - name: Detect changed YAML files id: changes @@ -28,12 +28,11 @@ jobs: BASE="${{ github.event.before }}" HEAD="${{ github.sha }}" - # Handle edge cases (new branch / forced push etc.) - if [ -z "${BASE}" ] || [ "${BASE}" = "0000000000000000000000000000000000000000" ]; then + if [ -z "$BASE" ] || [ "$BASE" = "0000000000000000000000000000000000000000" ]; then BASE="$(git rev-parse "${HEAD}~1" || true)" fi - if [ -z "${BASE}" ]; then + if [ -z "$BASE" ]; then echo "No base commit found; deploying nothing." echo "swarm_files=" >> "$GITHUB_OUTPUT" echo 'compose_matrix={"include":[]}' >> "$GITHUB_OUTPUT" @@ -44,23 +43,13 @@ jobs: echo "Changed files:" echo "$CHANGED" - # -------------------- # Swarm stack YAMLs - # -------------------- SWARM_FILES="$(echo "$CHANGED" | grep -E '^services/swarm/stacks/.*\.ya?ml$' || true)" - echo "Swarm stack files:" - echo "$SWARM_FILES" echo "swarm_files=$(echo "$SWARM_FILES" | xargs)" >> "$GITHUB_OUTPUT" - # -------------------- - # Compose YAMLs - # services/compose///.yml - # -------------------- + # Compose YAMLs: services/compose///.yml COMPOSE_FILES="$(echo "$CHANGED" | grep -E '^services/compose/[^/]+/[^/]+/.*\.ya?ml$' || true)" - echo "Compose files:" - echo "$COMPOSE_FILES" - # Build matrix items: {"host":"nas","file":"services/compose/nas/foo/comixed.yaml"} JSON='{"include":[' FIRST=1 while read -r FILE; do @@ -73,8 +62,6 @@ jobs: JSON+=']}' echo "compose_matrix=$JSON" >> "$GITHUB_OUTPUT" - echo "Compose matrix:" - echo "$JSON" deploy_swarm: needs: detect @@ -87,14 +74,13 @@ jobs: set -euo pipefail git config --global --add safe.directory "$PWD" git fetch origin - git checkout "$GITHUB_REF_NAME" + git checkout -B "$GITHUB_REF_NAME" "origin/$GITHUB_REF_NAME" - name: Validate swarm stacks shell: bash run: | set -euo pipefail for f in ${{ needs.detect.outputs.swarm_files }}; do - echo "Validating swarm stack file: $f" docker stack config -c "$f" >/dev/null done @@ -104,7 +90,6 @@ jobs: set -euo pipefail for f in ${{ needs.detect.outputs.swarm_files }}; do STACK="$(basename "$f" | sed 's/\.ya\?ml$//')" - echo "Deploying swarm stack: $STACK from $f" docker stack deploy -c "$f" "$STACK" done @@ -122,21 +107,17 @@ jobs: set -euo pipefail git config --global --add safe.directory "$PWD" git fetch origin - git checkout "$GITHUB_REF_NAME" + git checkout -B "$GITHUB_REF_NAME" "origin/$GITHUB_REF_NAME" - name: Validate compose file shell: bash run: | set -euo pipefail - F="${{ matrix.file }}" - echo "Validating compose file: $F" - docker compose -f "$F" config -q + docker compose -f "${{ matrix.file }}" config -q - name: Deploy compose file shell: bash run: | set -euo pipefail - F="${{ matrix.file }}" - echo "Deploying compose file: $F" - docker compose -f "$F" pull - docker compose -f "$F" up -d --remove-orphans + docker compose -f "${{ matrix.file }}" pull + docker compose -f "${{ matrix.file }}" up -d --remove-orphans