Skip to content

Polls the GitHub Status API endpoint for a Pull Request external integration until success is posted, and returns the value for target_url.

Notifications You must be signed in to change notification settings

platformsh/gha-retrieve-psh-prenv-url

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 

Repository files navigation

Retrieve Target URL from Platform.sh for PR Environment

GitHub action that polls the GitHub Status API endpoint for a Pull Request external integration until success is posted, and returns the value for target_url.

Inputs

  • repository - Owner/namespace of the target repository. Defaults to github.repository_owner from the github context.
  • github-token - Github personal access token with access rights to the target repository so we can work with the github api. REQUIRED.
  • ref - The branch or tag ref that we should check for a status. Defaults to github.head_ref from the github context.
  • timeout - How long (in seconds) should we continue checking for the new environment? Must be whole (integer) seconds. Defaults to 300.
  • delay-in-seconds - The delay in seconds between each check. Must be whole (integer) seconds. Defaults to 10.

Outputs

  • target_url - Target URL as returned by the external (Platform.sh) integration. PLEASE NOTE: By default, our integration returns the http variant of the URL and not the https version. Your workflow will need to account for this.

Example usage:

See Wait for psh and get target url step below

name: "smoke test"
on:
    workflow_run:
        workflows: ["platformsh"]
        types:
            - completed
    pull_request:
        branches:
            - main

jobs:
  test-pr-env:
    name: Test the PR environment
      runs-on: ubuntu-latest
      steps:
        - name: 'Wait for psh and get target url'
          id: get-target-url
          uses: platformsh/gha-retrieve-psh-prenv-url@main
          with:
            github-token: ${{ secrets.GH_TOKEN }}
        - name: 'Does Our App Work?'
          id: smokescreen
          run: |
            target_url=${{ steps.get-target-url.outputs.target_url }}
            #we dont need the whole response (yet), just see if we get a 200
            response=$(curl -s -o /dev/null -I -w "%{http_code}" "${target_url//http:/https:}");
            echo "::notice::Response from server for our PR environment is ${response}"

About

Polls the GitHub Status API endpoint for a Pull Request external integration until success is posted, and returns the value for target_url.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published