This directory contains the GitHub Actions workflows that power continuous integration and end-to-end testing for Linode Cloud Manager.
The ci
workflow handles testing, building, and publishing of packages in this repository. Tests are run using Vitest for api-v4
and manager
.
If the continuous integration workflow was triggered via a push to the master
branch, the built packages are published:
api-v4
andvalidation
are published to npmmanager
is published to cloud.linode.com
- Upon push to
master
branch - Upon pull request creation
Name | Description |
---|---|
AWS_ACCESS_KEY_ID | AWS access key, or equivalent |
AWS_S3_BUCKET | Name of S3 bucket where Cloud Manager is deployed |
AWS_SECRET_ACCESS_KEY | AWS secret access key, or equivalent |
NPM_AUTH_TOKEN | NPM authentication token for package publishing |
SLACK_WEBHOOK | Webhook for Slack CI notifications |
STORYBOOK_BUCKET | Name of S3 bucket where Storybook is deployed |
Automatic end-to-end testing of Linode Cloud Manager via Cypress is handled by the Run Tests On PR
and Run Tests On Push/Schedule
workflows. These two workflows are very similar, and differ primarily in how they are triggered.
End-to-end tests are run automatically for the develop
branch each weekday at 8:00 AM ET, and are triggered any time code is pushed to the develop
, staging
, and master
branches. Tests also run for pull requests authored by Cloud Manager team members.
Cypress tests are parallelized across four containers, and tests are automatically distributed among containers for optimal performance. To avoid race conditions, each test container is authenticated with its own test user account.
- Scheduled, 1:00 PM UTC (8:00 AM ET) every Monday through Friday for
develop
branch - Upon push to
develop
,staging
, andmaster
branches - Upon creation or update to any pull request authored by a Cloud Manager team member
Name | Description |
---|---|
USER_1 | Cloud Manager OAuth token for test user 1 |
USER_2 | Cloud Manager OAuth token for test user 2 |
USER_3 | Cloud Manager OAuth token for test user 3 |
USER_4 | Cloud Manager OAuth token for test user 4 |
REACT_APP_LAUNCH_DARKLY_ID | LaunchDarkly API key |
REACT_APP_CLIENT_ID | Linode OAuth app client ID |
REACT_APP_API_ROOT | Linode API root URL |
REACT_APP_APP_ROOT | Linode Cloud Manager instance root URL |
CYPRESS_RECORD_KEY | Cypress Dashboard project record key |
- Understanding GitHub Actions (
docs.github.com
) - Introduction to Cypress (
docs.cypress.io
) - Cypress: GitHub Actions (
docs.cypress.io
) - Cypress: Parallelization (
docs.cypress.io
) - Vitest: Getting Started (
vitest.dev
)