# https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions name: Pull Images and Redeploy run-name: ${{ gitea.actor }} is testing out Gitea Actions 🚀 on: pull_request: branches: - redeploy-stack jobs: Update-and-Redeploy-Stack: runs-on: synology steps: - name: Prefetch Docker Image(s) run: | docker pull linuxserver/bookstack #optional? probably faster if done first... - name: Fetch stack ID from Portainer env: STACK_NAME: bookstack PORTAINER_TOKEN: ${{ secrets.PORTAINER_TOKEN }} PORTAINER_API_URL: https://portainer.dev.nervesocket.com/api run: | STACK_DATA=$(curl -s -H "X-API-Key: $PORTAINER_TOKEN" "$PORTAINER_API_URL/stacks" | jq -r ".[] | select(.Name==\"$STACK_NAME\") | {Id, EndpointId}") STACK_ID=$(echo "$STACK_DATA" | jq -r ".Id") ENDPOINT_ID=$(echo "$STACK_DATA" | jq -r ".EndpointId") echo "STACK_ID=$STACK_ID" >> $GITHUB_ENV echo "ENDPOINT_ID=$ENDPOINT_ID" >> $GITHUB_ENV echo "Got stack ID: $STACK_ID and Endpoint ID: $ENDPOINT_ID" - name: Fetch stack configuration env: STACK_NAME: bookstack PORTAINER_TOKEN: ${{ secrets.PORTAINER_TOKEN }} PORTAINER_API_URL: https://portainer.dev.nervesocket.com/api run: | # Get the stack details (including stack file content) curl -s -H "X-API-Key: $PORTAINER_TOKEN" "$PORTAINER_API_URL/stacks/$STACK_ID/file" \ | jq -r '.StackFileContent' > stack.yml echo "Fetched stack configuration and saved it to stack.yml" - name: Redeploy stack in Portainer env: STACK_NAME: bookstack PORTAINER_TOKEN: ${{ secrets.PORTAINER_TOKEN }} PORTAINER_API_URL: https://portainer.dev.nervesocket.com/api run: | # Read stack file content # STACK_FILE_CONTENT=$(jq -Rs . < stack.yml) STACK_FILE_CONTENT=$(echo "$(