Utiliser les GitHub Actions pour PHP
GitHub a publié les GitHub actions afin de mettre en place du CI/CD directement sur leur plateforme.
Nous allons les utiliser pour lancer les tests et PHPStan.
Afin de pourvoir tester en local et pas seulement sir GitHub nous utiliserons ACT. Une fois installé, utiliser les commandes :
- act.exe -l afin de lister vos actions
- act.exe afin d’exécuter vos actions
Pour avoir une actions il faut créer un fichier sous .github/workflows/
. Afin de ne pas avoir à tout faire nous allons utiliser l’action setup-php-action.
Voici le fichier que nous allons utiliser.
name: "CI"
# Triggers the workflow on push or pull request events
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '7.4'
tools: phpstan, composer
- name: Validate composer.json and composer.lock
run: composer validate
- name: Get composer cache directory
id: composercache
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
- name: Cache dependencies
uses: actions/cache@v2
with:
path: ${{ steps.composercache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: ${{ runner.os }}-composer-
- name: Install dependencies
run: composer install --prefer-dist
- name: Setup problem matchers for PHPUnit
run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
- name: Run PHPStan
run: phpstan analyse src --level max
- name: "Run tests"
env:
sfdc_username: ${{ secrets.SFDC_USERNAME }}
sfdc_password: ${{ secrets.SFDC_PASSWORD }}
sfdc_client_secret: ${{ secrets.SFDC_CLIENT_SECRET }}
sfdc_client_id: ${{ secrets.SFDC_CLIENT_ID }}
run: |
cp .env.example .env
vendor/bin/phpunit --coverage-clover=coverage.xml
- A la ligne 4 nous demandons a lancer l’action sur les push et les pull request.
- Ligne 11 et 12 nous fessons un checkout de notre code.
- Ligne 14 et 14 nous utilisons l’action « Setup PHP » avec PHP 7.4 et composer, ligne 18 et 19.
- Ensuite nous installons nos dépendances.
- Puis ligne 39 nous ajoutons un matcher PHPUnit afin d’avoir les informations dans la GUI.
- Ligne 42 nous exécutons PHPStan.
- Ligne 45 a 49, nous utilisons des secret en tant que variable d’environnements, puis ligne 52 nous exécutons nos tests.
Afin d’ajouter des secrets, directions l’onglet Settings puis la section Secrets, il vous restera à cliquer sur New Secret.
Pour plus d’informations, direction la section Secret de la doc.
Ci-dessous d’autre image des actions:
Pour plus d’informations, regardez la documentations des GitHub Actions.