Skip to content

QIT Environment Test - Linux #11

QIT Environment Test - Linux

QIT Environment Test - Linux #11

name: QIT Environment Test - Linux
on:
# Every day at 11am and 11pm UTC (6am and 6pm ET)
schedule:
- cron: '0 11 * * *'
- cron: '0 23 * * *'
# Manually
workflow_dispatch:
# On push to trunk
push:
branches:
- trunk
jobs:
environment_tests:
runs-on: ubuntu-20.04
env:
NO_COLOR: 1
QIT_DISABLE_ONBOARDING: yes
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '7.2'
- name: Composer install
working-directory: _tests
run: composer install
- name: Enable dev mode
run: ./qit dev
- name: Connect to Staging QIT
run: ./qit backend:add --environment="staging" --qit_secret="${{ secrets.QIT_STAGING_SECRET }}" --manager_url="https://stagingcompatibilitydashboard.wpcomstaging.com"
- name: Add "qit.test" to /etc/hosts
run: sudo echo "127.0.0.1 qit.test" | sudo tee -a /etc/hosts
- name: Start environment and get URL
run: |
ENV_OUTPUT=$(./qit env:up --json)
if [ $? -ne 0 ]; then
echo "Failed to start environment"
echo "$ENV_OUTPUT"
exit 1
fi
echo "Raw environment output: $ENV_OUTPUT"
URL=$(echo "$ENV_OUTPUT" | jq -r '.url')
if [ -z "$URL" ] || [ "$URL" = "null" ]; then
echo "URL not found in environment output"
exit 1
fi
echo "ENV_URL=$URL" >> $GITHUB_ENV
- name: Print environment URL
run: |
echo "Environment URL: $ENV_URL"
- name: Test Site Up
run: |
STATUS_CODE=$(curl -s -o /dev/null -w "%{http_code}" $ENV_URL)
if [ "$STATUS_CODE" -eq 200 ]; then
echo "Site is up"
else
echo "Site is not up, status code: $STATUS_CODE"
exit 1
fi
- name: Query WP JSON
run: |
curl -s "$ENV_URL/wp-json"