Skip to content

QIT Environment Test - Linux #14

QIT Environment Test - Linux

QIT Environment Test - Linux #14

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:
jobs:
environment_tests:
strategy:
matrix:
os: [ubuntu-20.04, windows-latest, macos-latest]
#php: ['7.2', '7.4', '8.0'] # Example PHP versions, adjust as necessary
runs-on: ${{ matrix.os }}
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: 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 hosts file (Linux)
if: matrix.os == 'ubuntu-20.04'
run: sudo echo "127.0.0.1 qit.test" | sudo tee -a /etc/hosts
- name: Add "qit.test" to hosts file (Windows)
if: matrix.os == 'windows-latest'
run: echo "127.0.0.1 qit.test" | Out-File -Append -Encoding ASCII -FilePath C:\Windows\System32\drivers\etc\hosts
- name: Add "qit.test" to hosts file (macOS)
if: matrix.os == 'macos-latest'
run: sudo echo "127.0.0.1 qit.test" >> /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"
NGINX_PORT=$(echo "$ENV_OUTPUT" | jq -r '.nginx_port')
if [ -z "$NGINX_PORT" ] || [ "$NGINX_PORT" = "null" ]; then
echo "nginx_port not found in environment output"
exit 1
fi
echo "NGINX_PORT=$NGINX_PORT" >> $GITHUB_ENV
- name: Print nginx_port
run: |
echo "Nginx port: $NGINX_PORT"
- name: Test Site Up
run: |
STATUS_CODE=$(curl -s -o /dev/null -w "%{http_code}" http://qit.test:$NGINX_PORT/)
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 "http://qit.test:$NGINX_PORT/wp-json"