Skip to content

Commit

Permalink
Merge pull request #19 from rasben/detection-time
Browse files Browse the repository at this point in the history
Detection time
  • Loading branch information
rasben authored Oct 19, 2023
2 parents 755fcd9 + bdf7352 commit cf31d22
Showing 1 changed file with 30 additions and 15 deletions.
45 changes: 30 additions & 15 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ inputs:
type: string

PSH_DETECTION_WAIT:
description: "How long should we maximum wait for PSH to detect the push? If the branch doesnt exist in the PlatformSH GIT Remote, this is how long the action will take. Actually inactive environments get detected instantly. Default: 120 seconds."
default: 120
description: "How long should we maximum wait for PSH to detect the push? If the branch doesnt exist in the PlatformSH GIT Remote, this is how long the action will take. Actually inactive environments get detected instantly. Default: 60 seconds."
default: 60
required: false
type: integer

Expand All @@ -58,8 +58,7 @@ runs:
run: |
set +e
echo "Giving psh a chance to detect the git update.."
sleep 10s
sleep 5s
export PLATFORMSH_CLI_NO_INTERACTION=1;
export PLATFORM_PROJECT=${{ inputs.PLATFORMSH_ID }};
Expand All @@ -72,26 +71,42 @@ runs:
~/.platformsh/bin/platform activity:cancel --type=environment.cron --all; \
fi
DETECTION_TRIES=0
TRIES=0
SUCCESS=0
DELAY_BETWEEN_ATTEMPTS=5;
MAX_SECONDS=${{ inputs.PSH_DETECTION_WAIT }};
MAX_TRIES=$(( MAX_SECONDS / DELAY_BETWEEN_ATTEMPTS ));
while [ $TRIES -le $MAX_TRIES ]; do \
MAX_DETECTION_SECONDS=${{ inputs.PSH_DETECTION_WAIT }};
MAX_DETECTION_TRIES=$(( MAX_DETECTION_SECONDS / DELAY_BETWEEN_ATTEMPTS ));
MAX_WAIT_SECONDS=900;
echo "We will wait for a maximum of $MAX_DETECTION_SECONDS secs for PSH to detect a deploy, and a max of $MAX_WAIT_SECONDS secs for the deployment to finish."
MAX_TRIES=$(( 900 / DELAY_BETWEEN_ATTEMPTS ));
echo "We will now detect the PSH activities. You can view the deployment log using";
echo " platform activity:log [ID] -p ${{ inputs.PLATFORMSH_ID }} -e ${{ inputs.ENVIRONMENT_NAME }}";
echo "----------------------";
echo "";
while [ $DETECTION_TRIES -le $MAX_DETECTION_TRIES ] && [ $TRIES -le $MAX_TRIES ]; do \
DETECTION_TRIES=$((DETECTION_TRIES+1)); \
TRIES=$((TRIES+1)); \
ACTS=$(~/.platformsh/bin/platform activities --columns=state --incomplete --no-header --format=plain --no-interaction --type=${{ inputs.ACTIVITY_TYPES }} 2>&1 || true); \
if [[ "$ACTS" =~ "Specified environment not found" ]]; then break; fi; \
if [[ "$ACTS" =~ "Exception]" ]]; then break; fi; \
ACTS=$(~/.platformsh/bin/platform activities --format=plain --columns=id,state --incomplete --no-header --no-interaction --type=${{ inputs.ACTIVITY_TYPES }} 2>&1 || true); \
if [[ "$ACTS" =~ "pending" || "$ACTS" =~ "in progress" ]]; then \
DETECTION_TRIES=0; \
else \
echo "detect tries: $DETECTION_TRIES / $MAX_DETECTION_TRIES"; \
fi; \
if [[ "$ACTS" =~ "No activities found" ]]; then SUCCESS=1; break; fi; \
echo ""; \
echo "Current deploy state(s):"; \
echo "total tries: $TRIES / $MAX_TRIES"; \
echo "$ACTS"; \
echo "----------------------"; \
sleep $DELAY_BETWEEN_ATTEMPTS; \
done \
done
echo ""
STATUS=$(~/.platformsh/bin/platform env:info status 2>&1 || true)
Expand All @@ -108,7 +123,7 @@ runs:
CURL_HTTP_STATUS=$(curl -L -s -o /dev/null -w "%{http_code}" $URL)
if [[ "$CURL_HTTP_STATUS" != "200" ]]; then \
echo "PlatformSH reports the environment is ready, but cURL could not connect to it."; \
echo "PlatformSH reports the environment is ready, but cURL could not connect to it. You may have pushed a broken build."; \
echo "URL: $URL"; \
echo "HTTP Status Code: $CURL_HTTP_STATUS"; \
exit 2; \
Expand Down

0 comments on commit cf31d22

Please sign in to comment.