Skip to content

Merge pull request #288 from jolicode/fix_generate-certificates-names… #609

Merge pull request #288 from jolicode/fix_generate-certificates-names…

Merge pull request #288 from jolicode/fix_generate-certificates-names… #609

Workflow file for this run

name: Continuous Integration
'on':
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
schedule:
- cron: '0 0 * * MON'
permissions:
contents: read
jobs:
check-dockerfiles:
name: Check Dockerfile
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Check php/Dockerfile
uses: hadolint/hadolint-action@v3.1.0
with:
dockerfile: infrastructure/docker/services/php/Dockerfile
ci:
name: Test with PHP ${{ matrix.php-version }}
strategy:
fail-fast: false
matrix:
php-version: ['8.1', '8.2', '8.3']
runs-on: ubuntu-latest
env:
DS_PHP_VERSION: ${{ matrix.php-version }}
BUILDKIT_PROGRESS: plain
CI: 1
steps:
-
uses: actions/checkout@v3
# Setup
-
name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 8.2
tools: castor
-
name: 'Build and start the infrastructure'
run: 'castor start && sleep 5'
-
name: 'Check PHP coding standards'
run: 'castor qa:cs'
-
name: 'Run PHPStan'
run: 'castor qa:phpstan'
-
name: 'Test HTTP server'
run: |
set -e
set -o pipefail
curl --fail --insecure --silent -H "Host: app.test" https://127.0.0.1 | grep "Hello world"
curl --fail --insecure --silent -H "Host: app.test" https://127.0.0.1 | grep "${{ matrix.php-version }}"
-
name: 'Test builder'
run: |
set -e
set -o pipefail
cat > .castor/test.php <<'EOPHP'
<?php
use Castor\Attribute\AsTask;
use function docker\docker_compose_run;
#[AsTask()]
function test()
{
docker_compose_run('echo "Hello World"');
}
EOPHP
castor test | grep "Hello World"
-
name: 'Test communication with DB'
run: |
set -e
set -o pipefail
cat > application/public/index.php <<'EOPHP'
<?php
$pdo = new PDO('pgsql:host=postgres;dbname=app', 'app', 'app');
$pdo->exec('CREATE TABLE test (id integer NOT NULL)');
$pdo->exec('INSERT INTO test VALUES (1)');
echo $pdo->query('SELECT * from test')->fetchAll() ? 'database OK' : 'database KO';
EOPHP
# FPM seems super slow to detect the change, we need to wait a bit
sleep 3
curl --fail --insecure --silent -H "Host: app.test" https://127.0.0.1 | grep "database OK"