Build out testing workflow #64
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Upsun Demo CI | |
'on': | |
pull_request: | |
branches: | |
- main | |
env: | |
UPSUN_CLI_NO_INTERACTION: 1 | |
UPSUN_CLI_TOKEN: ${{secrets.DEVREL_USER_UPSUN_TOKEN}} | |
UPSUN_HOST_REGION: "ca-1" | |
UPSUN_HOST_SUFFIX: "platform.sh" | |
UPSUN_USERNAME: "devrel-projects" | |
GIT_USER_EMAIL: "devrel@internal.platform.sh" | |
GIT_USER_NAME: "DevRel Team Bot" | |
TEST_PATH: "utils/tests" | |
ORG_NAME: "demo-test-org" | |
PROJECT_LOCALDIR: "upsun-demo" | |
PROJECT_REPO: "platformsh/demo-project" | |
PROJECT_TITLE: 'Demo Test Run (pr-${{ github.ref_name }})' | |
DEFAULT_BRANCH: '${{ github.event.pull_request.head.ref }}' | |
STAGING_BRANCH: '${{ github.event.pull_request.head.ref }}-staging' | |
# TEST_PROJECT_BACKEND_PATH: api/v1/environment | |
jobs: | |
demo-runthrough: | |
runs-on: ubuntu-latest | |
steps: | |
################################################################################################ | |
# A. Setup Upsun CLI. | |
- name: "[setup_cli] 1. Retrieve local files." | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: "[setup_cli] 2. Set up Homebrew." | |
id: set-up-homebrew | |
uses: Homebrew/actions/setup-homebrew@master | |
- name: "[setup_cli] 3. Install Upsun CLI." | |
run: | | |
echo "::notice::Installing Upsun CLI via HomeBrew." | |
brew install platformsh/tap/upsun-cli | |
- name: "[setup_cli] 4. Test: The Upsun CLI should be installed and executable." | |
run: | | |
echo "::notice::Verifying CLI is installed correctly." | |
./$TEST_PATH/command_installed.sh upsun | |
################################################################################################ | |
# B. Setup authenticated Upsun CLI user. | |
- name: "[setup_cli_auth] 1. Test: an authenticated CLI can retrieve bot user info." | |
run: | | |
echo "::notice::Verifying CLI auth - bot can access user info." | |
RESULT=$(upsun auth:info username) | |
./$TEST_PATH/compare_strings.sh "$RESULT" "$UPSUN_USERNAME" "Authenticate Upsun CLI user" | |
- name: "[setup_cli_auth] 2. Test: an authenticated CLI can retrieve organization info." | |
run: | | |
echo "::notice::Verifying CLI auth - bot can access test organization info." | |
RESULT=$(upsun org:info -o $ORG_NAME name) | |
./$TEST_PATH/compare_strings.sh "$RESULT" "$ORG_NAME" "Authenticate Upsun CLI user" | |
- name: "[setup_cli_auth] 2. Authenticate Upsun CLI to allow push from workflow." | |
run: | | |
echo "::notice::Generating SSH certificate for Upsun CLI." | |
upsun ssh-cert:load --new -y | |
touch ~/.ssh/known_hosts | |
chmod 644 ~/.ssh/known_hosts | |
ssh-keyscan ssh.$UPSUN_HOST_REGION.$UPSUN_HOST_SUFFIX -v >> ~/.ssh/known_hosts | |
ssh-keyscan git.$UPSUN_HOST_REGION.$UPSUN_HOST_SUFFIX -v >> ~/.ssh/known_hosts | |
################################################################################################ | |
# C. Setup local repo. | |
- name: "[setup_repo] 1. Clone repository into runner." | |
run: | | |
echo "::notice::Cloning repo copy into runner." | |
git clone -b $DEFAULT_BRANCH \ | |
https://github.com/$PROJECT_REPO.git \ | |
$PROJECT_LOCALDIR | |
- name: "[setup_repo] 2. Setup runner Git user." | |
working-directory: ${{ env.PROJECT_LOCALDIR }} | |
run: | | |
echo "::notice::Setting up Git user." | |
git config --global user.email "$GIT_USER_EMAIL" | |
git config --global user.name "$GIT_USER_NAME" | |
git branch --show-current | |
- name: "[setup_repo] 3. Test: Verify Git settings." | |
working-directory: ${{ env.PROJECT_LOCALDIR }} | |
run: | | |
echo "::notice::Verifying Git settings." | |
RESULT=$(git config --global user.email) | |
./$TEST_PATH/compare_strings.sh "$RESULT" "$GIT_USER_EMAIL" "Git config (email)" | |
RESULT=$(git config --global user.name) | |
./$TEST_PATH/compare_strings.sh "$RESULT" "$GIT_USER_NAME" "Git config (name)" | |
RESULT=$(git branch --show-current) | |
./$TEST_PATH/compare_strings.sh "$RESULT" "$DEFAULT_BRANCH" "Git branch" | |
################################################################################################ | |
# D. Create project. Connect to local repo. Provide access to bot user to the project. | |
- name: "[create_project] 1. Create a project in the test organization." | |
working-directory: ${{ env.PROJECT_LOCALDIR }} | |
run: | | |
echo "::notice::Creating a project in the test organization." | |
echo "::notice::The project should become a remote repository for the local repo automatically." | |
upsun project:create -o "$ORG_NAME" \ | |
--title "$PROJECT_TITLE" \ | |
--region "$UPSUN_HOST_REGION.$UPSUN_HOST_SUFFIX" \ | |
--default-branch $DEFAULT_BRANCH | |
- name: "[create_project] 2. Test: The create project activity should complete." | |
working-directory: ${{ env.PROJECT_LOCALDIR }} | |
run: | | |
./utils/tests/activity_outcome.sh $DEFAULT_BRANCH project.create state complete "create_project" | |
- name: "[create_project] 3. Test: The create project activity should succeed." | |
working-directory: ${{ env.PROJECT_LOCALDIR }} | |
run: | | |
./utils/tests/activity_outcome.sh $DEFAULT_BRANCH project.create result success "create_project" | |
- name: "[create_project] 4. Test: project remote has been set." | |
working-directory: ${{ env.PROJECT_LOCALDIR }} | |
run: | | |
ADDRESS=$(git config remote.upsun.url) | |
PROJECT_ID=$(upsun project:info id) | |
EXPECTED="$PROJECT_ID@git.$UPSUN_HOST_REGION.$UPSUN_HOST_SUFFIX:$PROJECT_ID.git" | |
./$TEST_PATH/compare_strings.sh "$ADDRESS" "$EXPECTED" "project:set-remote git_address" | |
- name: "[create_project] 5. Test: project remote has been set. Ensure only a single project is defined in org for the current PR." | |
working-directory: ${{ env.PROJECT_LOCALDIR }} | |
run: | | |
# Failure here indicates that a project for another run on the same PR still exists in the org. | |
EXPECTED=$(upsun project:list -o "$ORG_NAME" --title "$PROJECT_TITLE" --pipe) | |
RESULT=$(upsun project:info id) | |
./$TEST_PATH/compare_strings.sh "$RESULT" "$EXPECTED" "project:set-remote local" | |
- name: "[create_project] 6. Remove remote origin." | |
working-directory: ${{ env.PROJECT_LOCALDIR }} | |
run: | | |
git remote remove origin | |
- name: "[create_project] 7. Test: project is only remote defined on repo." | |
working-directory: ${{ env.PROJECT_LOCALDIR }} | |
run: | | |
ADDRESS=$(git config remote.origin.url) | |
EXPECTED="" | |
./$TEST_PATH/compare_strings.sh "$ADDRESS" "$EXPECTED" "remote remove origin" | |
# git remote get-url --push upsun | |
# git remote -v | |
# RESULT=$(git remote get-url --push origin) | |
# ./$TEST_PATH/compare_strings.sh "$RESULT" "error: No such remote 'origin'" "remove origin" | |
# git remote -v | |
# - name: "[create_project] 7. Test: verify user has been granted admin access to project." | |
- name: "[create_project] 8. Update production environment name." | |
working-directory: ${{ env.PROJECT_LOCALDIR }} | |
run: | | |
upsun environment:info title "Production ($DEFAULT_BRANCH)" -e $DEFAULT_BRANCH | |
# ################################################################################################ | |
# # C. First deploy. | |
# - name: "[first_deploy] 1. Deploy the demo application to Upsun." | |
# run: | | |
# echo "::notice::First push to project." | |
# cd $TEST_PROJECT_LOCALDIR | |
# git branch | |
# # Push through Git, not the CLI, so the exit doesn't break the workflow. | |
# git push --force upsun $TEST_PROJECT_DEFAULT_BRANCH | |
# # upsun push -f -y | |
# - name: "[first_deploy] 2. Test: The first deploy activity should complete." | |
# run: | | |
# cd $TEST_PROJECT_LOCALDIR | |
# ./utils/tests/activity_outcome.sh $TEST_PROJECT_DEFAULT_BRANCH push state complete "first_push" | |
# - name: "[first_deploy] 3. Test: The first deploy activity should fail." | |
# run: | | |
# cd $TEST_PROJECT_LOCALDIR | |
# ./utils/tests/activity_outcome.sh $TEST_PROJECT_DEFAULT_BRANCH push result failure "first_push" | |
# ################################################################################################ | |
# # D. Set initial resources. | |
# - name: "[init_resources] 1. Set initial resources." | |
# run: | | |
# cd $TEST_PROJECT_LOCALDIR | |
# upsun resources:set --size '*:0.1' -y | |
# - name: "[init_resources] 2. Test: The update environment resources activity should complete." | |
# run: | | |
# cd $TEST_PROJECT_LOCALDIR | |
# ./utils/tests/activity_outcome.sh $TEST_PROJECT_DEFAULT_BRANCH environment.resources.update state complete "init_resources" | |
# - name: "[init_resources] 3. Test: The update environment resources activity should succeed." | |
# run: | | |
# cd $TEST_PROJECT_LOCALDIR | |
# ./utils/tests/activity_outcome.sh $TEST_PROJECT_DEFAULT_BRANCH environment.resources.update result success "init_resources" | |
# - name: "[init_resources] 4. Test: Updating environment resources should result in a 200 on the frontend production app." | |
# run: | | |
# cd $TEST_PROJECT_LOCALDIR | |
# TEST_PROJECT_PROD_URL_FRONTEND=$(upsun url --primary --pipe) | |
# ./utils/tests/url_status.sh $TEST_PROJECT_PROD_URL_FRONTEND '200' "production frontend deployment (init_resources)" | |
# - name: "[init_resources] 5. Test: Updating environment resources should result in a 200 on the backend production app." | |
# run: | | |
# cd $TEST_PROJECT_LOCALDIR | |
# TEST_PROJECT_PROD_URL_BACKEND=$TEST_PROJECT_PROD_URL_FRONTEND$TEST_PROJECT_BACKEND_PATH | |
# ./utils/tests/url_status.sh $TEST_PROJECT_PROD_URL_BACKEND '200' "production backend deployment (init_resources)" | |
# - name: "[init_resources] 6. Test: endpoint data." | |
# run: | | |
# cd $TEST_PROJECT_LOCALDIR | |
# EXPECTED_STATUS="file" | |
# STATUS_DATA=$(curl -s $TEST_PROJECT_PROD_URL_BACKEND | jq -r '.session_storage') | |
# if [ "$STATUS_DATA" != "$EXPECTED_STATUS" ]; then | |
# echo "::notice::Backend data session_storage is not the expected value ($EXPECTED_STATUS/$STATUS_DATA). Exiting." | |
# exit 1 | |
# else | |
# echo "::notice::Backend data session_storage as expected." | |
# fi | |
# EXPECTED_STATUS="production" | |
# STATUS_DATA=$(curl -s $TEST_PROJECT_PROD_URL_BACKEND | jq -r '.type') | |
# if [ "$STATUS_DATA" != "$EXPECTED_STATUS" ]; then | |
# echo "::notice::Backend data environment type is not the expected value ($EXPECTED_STATUS/$STATUS_DATA). Exiting." | |
# exit 1 | |
# else | |
# echo "::notice::Backend data environment type as expected." | |
# fi | |
# ################################################################################################ | |
# # D. Create staging environment. | |
# - name: "[branch] 1. Create preview environment" | |
# run: | | |
# cd $TEST_PROJECT_LOCALDIR | |
# upsun branch $TEST_PROJECT_STAGING_ENV --type staging | |
# TEST_PROJECT_ID=$(upsun project:list -o "$TEST_ORG_NAME" --title "$TEST_PROJECT_TITLE" --pipe) | |
# upsun environment:info title "Staging ($TEST_PROJECT_STAGING_ENV)" \ | |
# -e $TEST_PROJECT_STAGING_ENV \ | |
# -p $TEST_PROJECT_ID | |
# - name: "[branch] 2. Test: Verify branch activity success." | |
# run: | | |
# cd $TEST_PROJECT_LOCALDIR | |
# ACTIVITY_ID=$(upsun activity:list --type environment.branch -e $TEST_PROJECT_STAGING_ENV --no-header --columns=id --format plain) | |
# ACTIVITY_STATE=$(upsun activity:get $ACTIVITY_ID -P state) | |
# echo "::notice::Attempting to retrieve environment.branch activity state. Current state is: ${ACTIVITY_STATE}" | |
# if [ "${ACTIVITY_STATE}" = "complete" ]; then | |
# echo "::notice::Activity is complete." | |
# fi | |
# # 3. Verify that the activity has succeeded. | |
# ACTIVITY_RESULT=$(upsun activity:get $ACTIVITY_ID -P result) | |
# echo "::notice::Result retrieved: ${ACTIVITY_RESULT}" | |
# if [ "$ACTIVITY_RESULT" != "success" ]; then | |
# echo "::notice::Branching has failed. Exiting." | |
# exit 1 | |
# else | |
# echo "::notice::Branching successful." | |
# fi | |
# - name: "[branch] 3. Test: staging URLS & endpoint data." | |
# run: | | |
# cd $TEST_PROJECT_LOCALDIR | |
# TEST_PROJECT_STAGING_URL_FRONTEND=$(upsun url --primary --pipe) | |
# STATUS=$(curl --silent --head $TEST_PROJECT_STAGING_URL_FRONTEND | awk '/^HTTP/{print $2}') | |
# if [ "$STATUS" != "200" ]; then | |
# echo "::notice::Frontend deployment did not succeed. Exiting." | |
# exit 1 | |
# else | |
# echo "::notice::Frontend deployment successful." | |
# fi | |
# TEST_PROJECT_STAGING_URL_BACKEND=$TEST_PROJECT_STAGING_URL_FRONTEND$TEST_PROJECT_BACKEND_PATH | |
# STATUS=$(curl --silent --head $TEST_PROJECT_STAGING_URL_BACKEND | awk '/^HTTP/{print $2}') | |
# if [ "$STATUS" != "200" ]; then | |
# echo "::notice::Backend deployment did not succeed. Exiting." | |
# exit 1 | |
# else | |
# echo "::notice::Backend deployment successful." | |
# fi | |
# EXPECTED_STATUS="file" | |
# STATUS_DATA=$(curl -s $TEST_PROJECT_STAGING_URL_BACKEND | jq -r '.session_storage') | |
# if [ "$STATUS_DATA" != "$EXPECTED_STATUS" ]; then | |
# echo "::notice::Backend data session_storage is not the expected value ($EXPECTED_STATUS/$STATUS_DATA). Exiting." | |
# exit 1 | |
# else | |
# echo "::notice::Backend data session_storage as expected." | |
# fi | |
# EXPECTED_STATUS="staging" | |
# STATUS_DATA=$(curl -s $TEST_PROJECT_STAGING_URL_BACKEND | jq -r '.type') | |
# if [ "$STATUS_DATA" != "$EXPECTED_STATUS" ]; then | |
# echo "::notice::Backend data environment type is not the expected value ($EXPECTED_STATUS/$STATUS_DATA). Exiting." | |
# exit 1 | |
# else | |
# echo "::notice::Backend data environment type as expected." | |
# fi | |
# ################################################################################################ | |
# # E. Add a service. | |
# - name: "[add_service] 1. Uncomment service configuration block. Commit & push new service." | |
# run: | | |
# cd $TEST_PROJECT_LOCALDIR | |
# ./utils/uncomment.sh .upsun/config.yaml add_service | |
# git commit -am "Create a redis service." | |
# # Push through Git, not the CLI, so the exit doesn't break the workflow. | |
# git push --force upsun $TEST_PROJECT_STAGING_ENV | |
# # upsun push -f -y | |
# - name: "[add_service] 2. Test: Verify first failure." | |
# run: | | |
# cd $TEST_PROJECT_LOCALDIR | |
# ACTIVITY_ID=$(upsun activity:list --type push -e $TEST_PROJECT_STAGING_ENV --no-header --columns=id --format plain) | |
# ACTIVITY_STATE=$(upsun activity:get $ACTIVITY_ID -P state) | |
# echo "::notice::Attempting to retrieve new service push activity state. Current state is: ${ACTIVITY_STATE}" | |
# if [ "${ACTIVITY_STATE}" = "complete" ]; then | |
# echo "::notice::Activity is complete." | |
# fi | |
# ACTIVITY_RESULT=$(upsun activity:get $ACTIVITY_ID -P result) | |
# echo "::notice::Result retrieved: ${ACTIVITY_RESULT}" | |
# if [ "$ACTIVITY_RESULT" != "failure" ]; then | |
# echo "::notice::First push did not fail as expected. Exiting." | |
# exit 1 | |
# else | |
# echo "::notice::First push failed as expected." | |
# fi | |
# - name: "[add_service] 3. Set Redis' resources." | |
# run: | | |
# cd $TEST_PROJECT_LOCALDIR | |
# upsun resources:set --size redis_persistent:0.1 --disk redis_persistent:512 | |
# - name: "[add_service] 4. Test: verify activity completed." | |
# run: | | |
# cd $TEST_PROJECT_LOCALDIR | |
# ACTIVITY_ID=$(upsun activity:list -e $TEST_PROJECT_STAGING_ENV --type environment.resources.update --no-header --columns=id --format plain) | |
# ACTIVITY_STATE=$(upsun activity:get $ACTIVITY_ID -P state) | |
# echo "::notice::Attempting to retrieve staging resources.set activity state. Current state is: ${ACTIVITY_STATE}" | |
# if [ "${ACTIVITY_STATE}" = "complete" ]; then | |
# echo "::notice::Activity is complete." | |
# fi | |
# - name: "[add_service] 5. Test: verify activity has succeeded." | |
# run: | | |
# cd $TEST_PROJECT_LOCALDIR | |
# ACTIVITY_ID=$(upsun activity:list -e $TEST_PROJECT_STAGING_ENV --type environment.resources.update --no-header --columns=id --format plain) | |
# ACTIVITY_RESULT=$(upsun activity:get $ACTIVITY_ID -P result) | |
# if [ "$ACTIVITY_RESULT" != "success" ]; then | |
# echo "::notice::Resources set on staging has failed. Exiting." | |
# exit 1 | |
# else | |
# echo "::notice::Resources set on staging successful." | |
# fi | |
# - name: "[add_service] 6. Test: staging URLS & endpoint data." | |
# run: | | |
# cd $TEST_PROJECT_LOCALDIR | |
# TEST_PROJECT_STAGING_URL_FRONTEND=$(upsun url --primary --pipe) | |
# STATUS=$(curl --silent --head $TEST_PROJECT_STAGING_URL_FRONTEND | awk '/^HTTP/{print $2}') | |
# if [ "$STATUS" != "200" ]; then | |
# echo "::notice::Frontend deployment did not succeed. Exiting." | |
# exit 1 | |
# else | |
# echo "::notice::Frontend deployment successful." | |
# fi | |
# TEST_PROJECT_STAGING_URL_BACKEND=$TEST_PROJECT_STAGING_URL_FRONTEND$TEST_PROJECT_BACKEND_PATH | |
# STATUS=$(curl --silent --head $TEST_PROJECT_STAGING_URL_BACKEND | awk '/^HTTP/{print $2}') | |
# if [ "$STATUS" != "200" ]; then | |
# echo "::notice::Backend deployment did not succeed. Exiting." | |
# exit 1 | |
# else | |
# echo "::notice::Backend deployment successful." | |
# fi | |
# EXPECTED_STATUS="redis" | |
# STATUS_DATA=$(curl -s $TEST_PROJECT_STAGING_URL_BACKEND | jq -r '.session_storage') | |
# if [ "$STATUS_DATA" != "$EXPECTED_STATUS" ]; then | |
# echo "::notice::Backend data session_storage is not the expected value ($EXPECTED_STATUS/$STATUS_DATA). Exiting." | |
# exit 1 | |
# else | |
# echo "::notice::Backend data session_storage as expected." | |
# fi | |
# EXPECTED_STATUS="staging" | |
# STATUS_DATA=$(curl -s $TEST_PROJECT_STAGING_URL_BACKEND | jq -r '.type') | |
# if [ "$STATUS_DATA" != "$EXPECTED_STATUS" ]; then | |
# echo "::notice::Backend data environment type is not the expected value ($EXPECTED_STATUS/$STATUS_DATA). Exiting." | |
# exit 1 | |
# else | |
# echo "::notice::Backend data environment type as expected." | |
# fi | |
# ################################################################################################ | |
# # F. Promote revision to production. | |
# - name: "[merge] 1. Merge staging into production." | |
# run: | | |
# cd $TEST_PROJECT_LOCALDIR | |
# # Merge through Git, not the CLI, so the exit doesn't break the workflow. | |
# git checkout $TEST_PROJECT_DEFAULT_BRANCH | |
# git merge $TEST_PROJECT_STAGING_ENV | |
# git push --force upsun $TEST_PROJECT_DEFAULT_BRANCH | |
# # upsun merge staging -y | |
# - name: "[merge] 2. Test: Verify first failure." | |
# run: | | |
# cd $TEST_PROJECT_LOCALDIR | |
# ACTIVITY_ID=$(upsun activity:list --type push -e $TEST_PROJECT_DEFAULT_BRANCH --no-header --columns=id --format plain) | |
# ACTIVITY_STATE=$(upsun activity:get $ACTIVITY_ID -P state) | |
# echo "::notice::Attempting to retrieve merge activity state. Current state is: ${ACTIVITY_STATE}" | |
# if [ "${ACTIVITY_STATE}" = "complete" ]; then | |
# echo "::notice::Activity is complete." | |
# fi | |
# ACTIVITY_RESULT=$(upsun activity:get $ACTIVITY_ID -P result) | |
# echo "::notice::Result retrieved: ${ACTIVITY_RESULT}" | |
# if [ "$ACTIVITY_RESULT" != "failure" ]; then | |
# echo "::notice::Merge did not fail as expected. Exiting." | |
# exit 1 | |
# else | |
# echo "::notice::Merge failed as expected." | |
# fi | |
# - name: "[add_service] 3. Set Redis' resources." | |
# run: | | |
# cd $TEST_PROJECT_LOCALDIR | |
# upsun resources:set --size redis_persistent:0.1 --disk redis_persistent:512 -e $TEST_PROJECT_DEFAULT_BRANCH | |
# - name: "[add_service] 4. Test: verify activity completed." | |
# run: | | |
# cd $TEST_PROJECT_LOCALDIR | |
# ACTIVITY_ID=$(upsun activity:list -e $TEST_PROJECT_DEFAULT_BRANCH --type environment.resources.update --limit 1 --no-header --columns=id --format plain) | |
# ACTIVITY_STATE=$(upsun activity:get $TEST_PROJECT_DEFAULT_BRANCH -P state) | |
# echo "::notice::Attempting to retrieve production resources.set activity state. Current state is: ${ACTIVITY_STATE}" | |
# if [ "${ACTIVITY_STATE}" = "complete" ]; then | |
# echo "::notice::Activity is complete." | |
# fi | |
# - name: "[add_service] 5. Test: verify activity has succeeded." | |
# run: | | |
# cd $TEST_PROJECT_LOCALDIR | |
# ACTIVITY_ID=$(upsun activity:list -e $TEST_PROJECT_DEFAULT_BRANCH --type environment.resources.update --limit 1 --no-header --columns=id --format plain) | |
# ACTIVITY_RESULT=$(upsun activity:get $ACTIVITY_ID -P result) | |
# if [ "$ACTIVITY_RESULT" != "success" ]; then | |
# echo "::notice::Resources set on production has failed. Exiting." | |
# exit 1 | |
# else | |
# echo "::notice::Resources set on production successful." | |
# fi | |
# - name: "[merge] 6. Test: production URLS & endpoint data." | |
# run: | | |
# cd $TEST_PROJECT_LOCALDIR | |
# TEST_PROJECT_PROD_URL_FRONTEND=$(upsun url --primary --pipe) | |
# STATUS=$(curl --silent --head $TEST_PROJECT_PROD_URL_FRONTEND | awk '/^HTTP/{print $2}') | |
# if [ "$STATUS" != "200" ]; then | |
# echo "::notice::Frontend deployment did not succeed. Exiting." | |
# exit 1 | |
# else | |
# echo "::notice::Frontend deployment successful." | |
# fi | |
# TEST_PROJECT_PROD_URL_BACKEND=$TEST_PROJECT_PROD_URL_FRONTEND$TEST_PROJECT_BACKEND_PATH | |
# STATUS=$(curl --silent --head $TEST_PROJECT_PROD_URL_BACKEND | awk '/^HTTP/{print $2}') | |
# if [ "$STATUS" != "200" ]; then | |
# echo "::notice::Backend deployment did not succeed. Exiting." | |
# exit 1 | |
# else | |
# echo "::notice::Backend deployment successful." | |
# fi | |
# EXPECTED_STATUS="redis" | |
# STATUS_DATA=$(curl -s $TEST_PROJECT_PROD_URL_BACKEND | jq -r '.session_storage') | |
# if [ "$STATUS_DATA" != "$EXPECTED_STATUS" ]; then | |
# echo "::notice::Backend data session_storage is not the expected value ($EXPECTED_STATUS/$STATUS_DATA). Exiting." | |
# exit 1 | |
# else | |
# echo "::notice::Backend data session_storage as expected." | |
# fi | |
# EXPECTED_STATUS="production" | |
# STATUS_DATA=$(curl -s $TEST_PROJECT_PROD_URL_BACKEND | jq -r '.type') | |
# if [ "$STATUS_DATA" != "$EXPECTED_STATUS" ]; then | |
# echo "::notice::Backend data environment type is not the expected value ($EXPECTED_STATUS/$STATUS_DATA). Exiting." | |
# exit 1 | |
# else | |
# echo "::notice::Backend data environment type as expected." | |
# fi | |
# ################################################################################################ | |
# # # G. Cleanup. | |
# # - name: "[CLEANUP] 1. Delete project." | |
# # run: | | |
# # sleep 30 | |
# # echo "::notice::Cleaning up after successful run." | |
# # TEST_PROJECT_ID=$(upsun project:list -o "$TEST_ORG_NAME" --title "$TEST_PROJECT_TITLE" --pipe) | |
# # echo "::notice::Deleting project: ${TEST_PROJECT_ID}" | |
# # upsun project:delete -p $TEST_PROJECT_ID -y |