This commit introduces the ability to show previews for PRs by any author. It works as follows: - The build artifacts of all PRs are uploaded to the preview server. - Automatically verified PRs (i.e. from trusted authors or having a specific label) are deployed and publicly accessible as usual. - PRs that could not be automatically verified are stored for later use (after re-verification). - A PR can be marked as "trusted" and make its preview publicly accessible by adding the GitHub label specified in the `AIO_TRUSTED_PR_LABEL` env var of the preview server. At the moment, there is no automatic mechanism for notifying the preview server about changes to the PR's verification status. The PR's "visibility" will be checked and updated every time a new build is uploaded.
31 lines
1.2 KiB
Bash
31 lines
1.2 KiB
Bash
#!/bin/bash
|
|
set -e -o pipefail
|
|
|
|
# Set up env variables for testing
|
|
export AIO_BUILDS_DIR=$TEST_AIO_BUILDS_DIR
|
|
export AIO_DOMAIN_NAME=$TEST_AIO_DOMAIN_NAME
|
|
export AIO_GITHUB_ORGANIZATION=$TEST_AIO_GITHUB_ORGANIZATION
|
|
export AIO_GITHUB_TEAM_SLUGS=$TEST_AIO_GITHUB_TEAM_SLUGS
|
|
export AIO_PREVIEW_DEPLOYMENT_TOKEN=$TEST_AIO_PREVIEW_DEPLOYMENT_TOKEN
|
|
export AIO_REPO_SLUG=$TEST_AIO_REPO_SLUG
|
|
export AIO_TRUSTED_PR_LABEL=$TEST_AIO_TRUSTED_PR_LABEL
|
|
export AIO_UPLOAD_HOSTNAME=$TEST_AIO_UPLOAD_HOSTNAME
|
|
export AIO_UPLOAD_PORT=$TEST_AIO_UPLOAD_PORT
|
|
|
|
export AIO_GITHUB_TOKEN=$(head -c -1 /aio-secrets/TEST_GITHUB_TOKEN 2>/dev/null || echo "TEST_GITHUB_TOKEN")
|
|
export AIO_PREVIEW_DEPLOYMENT_TOKEN=$(head -c -1 /aio-secrets/TEST_PREVIEW_DEPLOYMENT_TOKEN 2>/dev/null || echo "TEST_PREVIEW_DEPLOYMENT_TOKEN")
|
|
|
|
# Start the upload-server instance
|
|
# TODO(gkalpak): Ideally, the upload server should be run as a non-privileged user.
|
|
# (Currently, there doesn't seem to be a straight forward way.)
|
|
appName=aio-upload-server-test
|
|
if [[ "$1" == "stop" ]]; then
|
|
pm2 delete $appName
|
|
else
|
|
pm2 start $AIO_SCRIPTS_JS_DIR/dist/lib/upload-server/index-test.js \
|
|
--log /var/log/aio/upload-server-test.log \
|
|
--name $appName \
|
|
--no-autorestart \
|
|
${@:2}
|
|
fi
|