# https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions name: Gitea Actions Demo run-name: ${{ gitea.actor }} is testing out Gitea Actions 🚀 on: [push] jobs: Explore-Gitea-Actions: runs-on: synology steps: - run: docker pull linuxserver/bookstack #optional? probably faster if done first... - name: Fetch stack ID from Portainer if: contains(github.event.head_commit.message, 'redeploy') # looks lke this works! env: STACK_NAME: bookstack PORTAINER_TOKEN: ${{ secrets.PORTAINER_TOKEN }} PORTAINER_API_URL: https://portainer.dev.nervesocket.com/api run: | CURL=$(curl -s -H "X-API-Key: $PORTAINER_TOKEN" "$PORTAINER_API_URL/stacks") echo $CURL 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 if: contains(github.event.head_commit.message, 'redeploy') 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 if: contains(github.event.head_commit.message, 'redeploy') 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 "$(