Use Github Action to run jobs on ephemeral environments automatically deployed by Shipyard, authenticating into them via a bypass token. This job connects with Shipyard during a Github Action job, fetching necessary environment variables in order to run e2e tests where authentication via OAuth is normally required.
In your Github Workflow file located in .github/workflows/
, you can use the Shipyard's Github Action as per the following example:
on: [pull_request]
jobs:
cypress-e2e-tests:
runs-on: ubuntu-latest
name: Collect the bypass token and URL for an authenticated ephemeral environment attached to this PR in order to run e2e tests on it.
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Fetch Shipyard Tokens
uses: shipyard/github-action/[email protected]
env:
SHIPYARD_API_TOKEN: ${{ secrets.SHIPYARD_API_TOKEN }}
- name: Run the e2e tests on the ephemeral environment
run: npm run test
shell: bash
env:
CYPRESS_BASE_URL: $SHIPYARD_ENVIRONMENT_URL
CYPRESS_BYPASS_TOKEN: $SHIPYARD_BYPASS_TOKEN
The Github Action can be configured by passing inputs or environment variables:
Inputs
- name: Fetch Shipyard Tokens
uses: shipyard/github-action/[email protected]
with:
api-token: ${{ secrets.SHIPYARD_API_TOKEN }}
timeout-minutes: 30
Input name | Description | Default Value |
---|---|---|
api-token |
Token required to connect to Shipyard's APIs. Can be obtained from your Organization's setting page | - |
timeout-minutes |
Number of minutes to wait for Shipyard environment before timing out. | 60 |
app-name |
Filter the environments by name of the application on the Shipyard app. | - |
Environment Variables
- name: Fetch Shipyard Tokens
uses: shipyard/github-action/[email protected]
env:
SHIPYARD_API_TOKEN: ${{ secrets.SHIPYARD_API_TOKEN }}
SHIPYARD_TIMEOUT: 30
INPUT_APP_NAME: 'react-app'
Environment Variable | Description | Default Value |
---|---|---|
SHIPYARD_API_TOKEN |
Token required to connect to Shipyard's APIs. Can be obtained from your Organization's setting page | - |
SHIPYARD_TIMEOUT |
Number of minutes to wait for Shipyard environment before timing out. | 60 |
SHIPYARD_APP_NAME |
Filter the environments by name of the application on the Shipyard app. | - |
NOTE: Inputs are given precedence over environment variables.
If input api-token
or environment variable SHIPYARD_API_TOKEN
is not provided, error is raised.
On successful run, the following environment variables are set, which can then be passed on to other actions in the same workflow.
Parameter Name | Description |
---|---|
SHIPYARD_ENVIRONMENT_URL |
URL of the ephemeral environment |
SHIPYARD_ENVIRONMENT_ID |
ID of the ephemeral environment |
SHIPYARD_BYPASS_TOKEN |
Token to bypass authentication |