Configure o PHP com as extensões necessárias, configuração do php.ini, suporte para cobertura de código e várias ferramentas como compositor no GitHub Actions. Esta ação fornece uma interface de plataforma cruzada para configurar o ambiente PHP necessário para testar seu aplicativo. Consulte a seção Uso e exemplos para ver como usar isso.
Tanto os executores GitHub-hosted
quanto self-hosted
são suportados pelo setup-php
nos seguintes sistemas operacionais/plataformas.
Ambiente virtual | Rótulo de fluxo de trabalho YAML | PHP pré-instalado |
---|---|---|
Ubuntu 24.04 | ubuntu-24.04 | PHP 8.3 |
Ubuntu 22.04 | ubuntu-latest ou ubuntu-22.04 | PHP 8.1 |
Ubuntu 20.04 | ubuntu-20.04 | PHP 7.4 a PHP 8.3 |
Servidor Windows 2022 | windows-latest ou windows-2022 | PHP 8.3 |
Servidor Windows 2019 | windows-2019 | PHP 8.3 |
macOS Sequóia 15.x | macos-15 | - |
macOS Sonoma 14.x | macos-latest ou macos-14 | - |
MacOS Ventura 13.x | macos-13 | PHP 8.3 |
SO host/ambiente virtual | Rótulo de fluxo de trabalho YAML |
---|---|
Ubuntu 24.04 | self-hosted ou Linux |
Ubuntu 22.04 | self-hosted ou Linux |
Ubuntu 20.04 | self-hosted ou Linux |
Debian 12 | self-hosted ou Linux |
Debian 11 | self-hosted ou Linux |
Windows 7 e mais recente | self-hosted ou Windows |
Windows Server 2012 R2 e mais recente | self-hosted ou Windows |
macOS Sequoia 15.x x86_64/arm64 | self-hosted ou macOS |
macOS Sonoma 14.x x86_64/arm64 | self-hosted ou macOS |
macOS Ventura 13.x x86_64/arm64 | self-hosted ou macOS |
setup-php
muda para ela, caso contrário, instala a versão do PHP. Em todos os sistemas operacionais/plataformas suportados, as seguintes versões do PHP podem ser configuradas de acordo com o executor.
Versão PHP | Estabilidade | Suporte de lançamento | Suporte ao corredor |
---|---|---|---|
5.3 | Stable | End of life | GitHub-hosted |
5.4 | Stable | End of life | GitHub-hosted |
5.5 | Stable | End of life | GitHub-hosted |
5.6 | Stable | End of life | GitHub-hosted , self-hosted |
7.0 | Stable | End of life | GitHub-hosted , self-hosted |
7.1 | Stable | End of life | GitHub-hosted , self-hosted |
7.2 | Stable | End of life | GitHub-hosted , self-hosted |
7.3 | Stable | End of life | GitHub-hosted , self-hosted |
7.4 | Stable | End of life | GitHub-hosted , self-hosted |
8.0 | Stable | End of life | GitHub-hosted , self-hosted |
8.1 | Stable | Security fixes only | GitHub-hosted , self-hosted |
8.2 | Stable | Active | GitHub-hosted , self-hosted |
8.3 | Stable | Active | GitHub-hosted , self-hosted |
8.4 | Stable | Active | GitHub-hosted , self-hosted |
8.5 | Nightly | In development | GitHub-hosted , self-hosted |
Notas:
8.5
na entrada php-version
instala uma compilação noturna do PHP 8.5.0-dev
. Consulte configuração de compilação noturna para obter mais informações.PHP 8.0
e superior, consulte a seção de configuração JIT. Extensões PHP podem ser configuradas usando a entrada extensions
. Aceita uma string
no formato csv.
Ubuntu
, extensões que estão disponíveis como um pacote, disponíveis no PECL
ou em um repositório git podem ser configuradas. - name : Setup PHP with PECL extension
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : imagick, swoole
No Windows
, extensões disponíveis no PECL
que possuem o binário DLL
podem ser configuradas.
No macOS
, extensões disponíveis no PECL
ou em um repositório git podem ser configuradas.
No Ubuntu
e macOS
para compilar e instalar uma extensão de um repositório git, siga este guia.
Extensões instaladas junto com o PHP, se especificadas, estão habilitadas.
Versões específicas de extensões disponíveis no PECL
podem ser configuradas adicionando o sufixo do nome da extensão à versão. Isso é útil para instalar versões antigas de extensões que suportam versões PHP em fim de vida.
- name : Setup PHP with specific version of PECL extension
uses : shivammathur/setup-php@v2
with :
php-version : ' 5.4 '
extensions : swoole-1.9.3
PECL
podem ser configuradas adicionando um sufixo ao nome da extensão com seu estado, ou seja, alpha
, beta
, devel
ou snapshot
. - name : Setup PHP with pre-release PECL extension
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : xdebug-beta
No Ubuntu
e macOS
para compilar e instalar uma extensão do PECL com bibliotecas ou configuração personalizada, siga este guia.
As extensões compartilhadas podem ser desativadas prefixando-as com :
. Todas as extensões dependendo da extensão especificada também serão desativadas.
- name : Setup PHP and disable opcache
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : :opcache
none
. Quando none
é especificada junto com outras extensões, ela é elevada ao início da entrada. Portanto, todas as extensões compartilhadas serão desativadas primeiro e, em seguida, o restante das extensões na entrada será processado. Nota: Isso desativa todas as extensões compartilhadas principais e de terceiros e, portanto, pode quebrar algumas ferramentas que precisam delas. As extensões necessárias são habilitadas novamente quando as ferramentas são configuradas com base no melhor esforço. Portanto, é recomendável adicionar as extensões necessárias para suas ferramentas após none
na entrada extensions
para evitar problemas.
- name : Setup PHP without any shared extensions except mbstring
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : none, mbstring
intl
pode ser configurada com uma versão específica ICU
para PHP 5.6
e superior em fluxos de trabalho Ubuntu
sufixando intl
com a versão ICU
. ICU 50.2
e versões mais recentes são suportadas. Consulte as ICU builds
para as versões específicas suportadas. - name : Setup PHP with intl
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : intl-70.1
Extensões carregadas por padrão após a execução setup-php
podem ser encontradas no wiki.
Estas extensões têm suporte personalizado:
cubrid
e pdo_cubrid
no Ubuntu
.event
, gearman
, geos
e relay
no Ubuntu
e macOS
.blackfire
, couchbase
, ioncube
, oci8
, pdo_firebird
, pdo_oci
, pecl_http
, phalcon3
, phalcon4
, phalcon5
e zephir_parser
em todos os sistemas operacionais suportados. Por padrão, extensões que não podem ser adicionadas ou desabilitadas normalmente deixam uma mensagem de erro nos logs, a execução não é interrompida. Para alterar esse comportamento, você pode definir o sinalizador fail-fast
como true
.
- name : Setup PHP with fail-fast
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : oci8
env :
fail-fast : true
Essas ferramentas podem ser configuradas globalmente usando a entrada tools
. Aceita uma string no formato csv.
behat
, blackfire
, blackfire-player
, box
, castor
, churn
, codeception
, composer
, composer-dependency-analyser
, composer-normalize
, composer-prefetcher
, composer-require-checker
, composer-unused
, cs2pr
, deployer
, ecs
, flex
, grpc_php_plugin
, infection
, parallel-lint
, pecl
, phan
, phing
, phinx
, phive
, php-config
, php-cs-fixer
, php-scoper
, phpcbf
, phpcpd
, phpcs
, phpdoc
ou phpDocumentor
, phpize
, phplint
, phpmd
, phpspec
, phpstan
, phpunit
, phpunit-bridge
, phpunit-polyfills
, pint
, prestissimo
, protoc
, psalm
, rector
, symfony
ou symfony-cli
, vapor
ou vapor-cli
, wp
ou wp-cli
- name : Setup PHP with tools
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : php-cs-fixer, phpunit
vendor/package
correspondente à listagem no Packagist. Este formato aceita as mesmas restrições de versão do composer
. - name : Setup PHP with tools
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : vimeo/psalm
Para configurar uma versão específica de uma ferramenta, especifique-a no formato tool:version
.
A versão pode estar no seguinte formato:
tool:1.2.3
ou tool:1.2.3-beta1
.tool:1
ou tool:1.x
.tool:1.2
ou tool:1.2.x
. Quando você especifica apenas a versão principal ou a versão no formato major.minor
, a versão de patch mais recente que corresponda à entrada será configurada.
Com exceção das versões principais do composer
, se você especificar apenas a versão major
ou a versão no formato major.minor
para uma ferramenta, poderá obter uma taxa limitada pela API do GitHub. Para evitar isso, é recomendável fornecer um token GitHub
OAuth. Você pode fazer isso definindo a variável de ambiente GITHUB_TOKEN
. A variável de ambiente COMPOSER_TOKEN
foi descontinuada em favor de GITHUB_TOKEN
e será removida na próxima versão principal.
- name : Setup PHP with tools
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : php-cs-fixer:3.64, phpunit:11.4
env :
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
composer
é configurada por padrão. Você pode configurar a versão necessária composer
especificando a versão principal v1
ou v2
ou a versão no formato major.minor
ou semver
. Além disso, snapshot
e preview
do compositor também podem ser especificados para configurar os respectivos lançamentos. - name : Setup PHP with composer v2
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : composer:v2
tools: none
para ignorá-lo. - name : Setup PHP without composer
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : none
As ferramentas pear
, pecl
, phpize
e php-config
são configuradas por padrão para todas as versões PHP suportadas no Linux e macOS.
A versão mais recente do blackfire
cli é configurada quando blackfire
é especificado na entrada de ferramentas. Consulte a documentação oficial para usar blackfire
com GitHub Actions.
As ferramentas prestissimo
e composer-prefetcher
serão ignoradas, a menos que composer:v1
também seja especificado na entrada de ferramentas. Recomenda-se abandonar prestissimo
e usar composer v2
.
Por padrão, exceto as ferramentas composer
que não podem ser configuradas normalmente deixam uma mensagem de erro nos logs, a execução não é interrompida. Para alterar esse comportamento, você pode definir o sinalizador fail-fast
como true
.
- name : Setup PHP with fail-fast
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : deployer
env :
fail-fast : true
Notas
tools
de entrada são úteis para configurar ferramentas que são usadas apenas em fluxos de trabalho de CI, mantendo assim seu composer.json
organizado.--no-dev
e instalar as ferramentas necessárias usando a entrada tools
para acelerar seu fluxo de trabalho.COMPOSER_NO_INTERACTION
é definido como 1
e COMPOSER_PROCESS_TIMEOUT
é definido como 0
. Na verdade, isso significa que os comandos do Composer em seus scripts não precisam especificar --no-interaction
.COMPOSER_NO_AUDIT
está definido como 1
. Portanto, se você deseja auditar suas dependências em busca de vulnerabilidades de segurança, é recomendável adicionar uma etapa composer audit
antes de instalá-las.COMPOSER_PROCESS_TIMEOUT
diferente, você pode configurá-lo em seu arquivo de fluxo de trabalho usando a palavra-chave env
. - name : Setup PHP with composer and custom process timeout
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
env :
COMPOSER_PROCESS_TIMEOUT : 300
Especifique coverage: xdebug
para usar Xdebug
e desabilitar PCOV
.
Funciona em todas as versões PHP suportadas.
- name : Setup PHP with Xdebug
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
coverage : xdebug
coverage: xdebug
, a versão mais recente do Xdebug compatível com a versão do PHP é configurada por padrão.coverage: xdebug2
. - name : Setup PHP with Xdebug 2.x
uses : shivammathur/setup-php@v2
with :
php-version : ' 7.4 '
coverage : xdebug2
Nota : O Xdebug está habilitado por padrão nas imagens Ubuntu GitHub Actions, portanto, se você não o estiver usando em seu fluxo de trabalho, é recomendável desativá-lo, pois isso terá um impacto positivo no desempenho do PHP. Consulte a seção de desativação de cobertura para obter detalhes.
Especifique coverage: pcov
para usar PCOV
e desabilitar Xdebug
.
Funciona em PHP 7.1 e versões mais recentes do PHP.
src
, lib
ou app
, especifique pcov.directory
usando a entrada ini-values
. - name : Setup PHP with PCOV
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
ini-values : pcov.directory=api # optional, see above for usage.
coverage : pcov
pcov/clobber
antes de executar seus testes. - name : Setup PCOV
run : |
composer require pcov/clobber
vendor/bin/pcov clobber
Especifique coverage: none
para desabilitar Xdebug
e PCOV
.
Desative a cobertura por estes motivos:
phpdbg
para executar seus testes.blackfire
.- name : Setup PHP with no coverage driver
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
coverage : none
Especifique usando
with
palavra-chave
php-version
(opcional)string
. Por exemplo '8.4'
.lowest
para configurar a versão PHP mais baixa suportada.highest
ou latest
para configurar a versão estável mais recente do PHP.nightly
para configurar uma compilação noturna a partir do branch master do PHP.dx
, onde d
é a versão principal. Por exemplo 5.x
, 7.x
8.x
.php-version-file
se existircomposer.lock
e o valor platform-overrides.php
composer.json
e o valor config.platform.php
php-version-file
(opcional)string
. Por exemplo '.phpenv-version'
..php-version
é usado..php-version
padrão não for encontrado, a versão estável mais recente do PHP será configurada. extensions
(opcional)string
no formato csv. Por exemplo mbstring, :opcache
.none
para desabilitar todas as extensões compartilhadas.:
estão desativadas.ini-file
(opcional)php.ini
base.production
, development
ou none
.php.ini
de produção é usado. ini-values
(opcional)php.ini
.string
no formato csv. Por exemplo post_max_size=256M, max_execution_time=180
.xdebug.mode="develop,coverage"
. coverage
(opcional)xdebug
, pcov
ou none
.tools
(opcional)string
no formato csv. Por exemplo: phpunit, phpcs
php-version
No GitHub Actions você pode atribuir à etapa setup-php
um id
, você pode usar o mesmo para obter as saídas em uma etapa posterior.
- name : Setup PHP
id : setup-php
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
- name : Print PHP version
run : echo ${{ steps.setup-php.outputs.php-version }}
Especifique usando a palavra-chave
env
fail-fast
(opcional)false
.true
e false
. phpts
(opcional)nts
para thread-safe e zts
ou ts
para thread-safe.nts
.update
(opcional)true
e false
.false
.Veja abaixo para mais informações.
Configure uma versão específica do PHP.
steps :
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : mbstring, intl
ini-values : post_max_size=256M, max_execution_time=180
coverage : xdebug
tools : php-cs-fixer, phpunit
Configure várias versões de PHP em vários sistemas operacionais.
jobs :
run :
runs-on : ${{ matrix.operating-system }}
strategy :
matrix :
operating-system : ['ubuntu-latest', 'windows-latest', 'macos-latest']
php-versions : ['8.2', '8.3', '8.4']
phpunit-versions : ['latest']
include :
- operating-system : ' ubuntu-latest '
php-versions : ' 8.1 '
phpunit-versions : 10
steps :
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ${{ matrix.php-versions }}
extensions : mbstring, intl
ini-values : post_max_size=256M, max_execution_time=180
coverage : xdebug
tools : php-cs-fixer, phpunit:${{ matrix.phpunit-versions }}
env :
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
Configure uma compilação noturna do
PHP 8.5
.
steps :
- name : Setup nightly PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.5 '
extensions : mbstring
ini-values : post_max_size=256M, max_execution_time=180
coverage : xdebug
tools : php-cs-fixer, phpunit
Configure uma construção PHP com símbolos de depuração.
debug
para configurar uma compilação com símbolos de depuração para PHP 5.6 e superior.Notas
/usr/lib/debug/.build-id
. Esses arquivos correspondem ao build-id
na seção ELF dos binários PHP e ferramentas de depuração como gdb
são capazes de resolver os símbolos desses arquivos.pdb
no diretório de instalação do PHP. steps :
- name : Setup PHP with debugging symbols
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
env :
debug : true # specify true or false
Configure o PHP
TS
ouNTS
.
NTS
são configuradas por padrão. jobs :
run :
runs-on : [ubuntu-latest, windows-latest, macos-latest]
name : Setup PHP TS
steps :
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
env :
phpts : ts # specify ts or nts
Atualize para o patch mais recente das versões do PHP.
ppa:ondrej/php
estiver faltando no ambiente Ubuntu GitHub, a versão do PHP será atualizada para a versão de patch mais recente.update
como true
para atualizar para a versão mais recente. - name : Setup PHP with latest versions
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
env :
update : true # specify true or false
Depure seu fluxo de trabalho
Para depurar quaisquer problemas, você pode usar a tag verbose
em vez de v2
.
- name : Setup PHP with logs
uses : shivammathur/setup-php@verbose
with :
php-version : ' 8.4 '
Configure o PHP em arquitetura múltipla no Ubuntu GitHub Runners.
PHP 5.6
a PHP 8.4
são suportados por setup-php
em arquiteturas múltiplas no Ubuntu
.shivammathur/node
como contêineres. Eles possuem Nodejs
compatíveis instalados para setup-php
.ARM
, você precisará de executores auto-hospedados. jobs :
run :
runs-on : ubuntu-latest
container : shivammathur/node:latest-${{ matrix.arch }}
strategy :
matrix :
arch : ["amd64", "i386"]
steps :
- name : Install PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
Configure o PHP em um executor auto-hospedado.
Para configurar um executor auto-hospedado em contêiner, consulte os guias a seguir de acordo com seu sistema operacional base.
Para configurar o executor diretamente no sistema operacional host ou em uma máquina virtual, siga este guia de requisitos antes de configurar o executor auto-hospedado.
Se o seu fluxo de trabalho usar contêineres de serviço, configure o executor em um host Linux ou em uma máquina virtual Linux. GitHub Actions não oferece suporte à virtualização aninhada no Linux, portanto, os serviços não funcionarão em um contêiner dockerizado.
Recomenda-se especificar a variável de ambiente runner
com o valor self-hosted
para ambientes auto-hospedados.
jobs :
run :
runs-on : self-hosted
strategy :
matrix :
php-versions : ['5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3', '8.4']
name : PHP ${{ matrix.php-versions }}
steps :
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ${{ matrix.php-versions }}
env :
runner : self-hosted
Notas
self-hosted
que são usados por executores GitHub-hosted
.Teste seu fluxo de trabalho
Ubuntu
localmente usandonektos/act
.
jobs :
run :
runs-on : ubuntu-latest
steps :
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
Execute o fluxo de trabalho localmente com act
usando imagens docker shivammathur/node
.
Escolha a tag de imagem que corresponde à propriedade runs-on
em seu fluxo de trabalho. Por exemplo, se você estiver usando ubuntu-20.04
em seu fluxo de trabalho, execute act -P ubuntu-20.04=shivammathur/node:2004
.
# For runs-on: ubuntu-latest
act -P ubuntu-latest=shivammathur/node:latest
# For runs-on: ubuntu-24.04
act -P ubuntu-24.04=shivammathur/node:2404
# For runs-on: ubuntu-22.04
act -P ubuntu-22.04=shivammathur/node:2204
# For runs-on: ubuntu-20.04
act -P ubuntu-20.04=shivammathur/node:2004
Habilite Just-in-time (JIT) no PHP 8.0 e superior.
opcache
no modo cli configurando opcache.enable_cli=1
.Xdebug
, PCOV
e outras extensões que substituem a função zend_execute_ex
, então defina coverage: none
e desabilite qualquer extensão, se adicionada.opcache.jit=1235
e opcache.jit_buffer_size=256M
são definidos, o que pode ser alterado usando a entrada ini-values
.official PHP documentation
. Por exemplo, para ativar o JIT no modo de tracing
com tamanho de buffer de 64 MB
.
- name : Setup PHP with JIT in tracing mode
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
coverage : none
ini-values : opcache.enable_cli=1, opcache.jit=tracing, opcache.jit_buffer_size=64M
Você pode armazenar em cache extensões PHP usando shivammathur/cache-extensions
e action/cache
GitHub Actions. Extensões que demoram muito para serem configuradas quando armazenadas em cache estão disponíveis na próxima execução do fluxo de trabalho e são habilitadas diretamente. Isso reduz o tempo de execução do fluxo de trabalho.
Consulte shivammathur/cache-extensions
para obter detalhes.
Se o seu projeto usa o compositor, você pode manter o diretório de cache interno do compositor. As dependências armazenadas em cache são carregadas diretamente em vez de baixá-las durante a instalação. Os arquivos armazenados em cache ficam disponíveis nas execuções de verificação e reduzirão o tempo de execução do fluxo de trabalho.
- name : Get composer cache directory
id : composer-cache
run : echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- name : Cache dependencies
uses : actions/cache@v4
with :
path : ${{ steps.composer-cache.outputs.dir }}
key : ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys : ${{ runner.os }}-composer-
- name : Install dependencies
run : composer install --prefer-dist
Notas
vendor
usando action/cache
, pois isso terá efeitos colaterais.composer.lock
, poderá usar o hash de composer.json
como chave para seu cache. key : ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
composer
e usa opções prefer-lowest
e prefer-stable
, você pode armazená-las em sua matriz e adicioná-las às chaves. key : ${{ runner.os }}-composer-${{ matrix.prefer }}-${{ hashFiles('**/composer.lock') }}
restore-keys : ${{ runner.os }}-composer-${{ matrix.prefer }}-
Se você tiver vários fluxos de trabalho que configuram diversas ferramentas ou tiver muitas dependências do compositor, poderá atingir o limite de taxa do GitHub para o compositor. Além disso, se você especificar apenas a versão principal ou a versão no formato major.minor
, poderá atingir o limite de taxa. Para evitar isso, você pode especificar um token OAuth
definindo a variável de ambiente GITHUB_TOKEN
. Você pode usar o segredo GITHUB_TOKEN
para essa finalidade.
A variável de ambiente COMPOSER_TOKEN
foi descontinuada em favor de GITHUB_TOKEN
e será removida na próxima versão principal.
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
env :
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
Se você usar o Private Packagist para suas dependências privadas do compositor, poderá definir a variável de ambiente PACKAGIST_TOKEN
para autenticação.
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
env :
PACKAGIST_TOKEN : ${{ secrets.PACKAGIST_TOKEN }}
Além do GitHub ou do Private Packagist, se quiser autenticar repositórios privados hospedados em outro lugar, você pode definir a variável de ambiente COMPOSER_AUTH_JSON
com os métodos de autenticação e as credenciais no formato json. Consulte a seção de autenticação na composer documentation
para obter mais detalhes.
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
env :
COMPOSER_AUTH_JSON : |
{
"http-basic": {
"example.org": {
"username": "${{ secrets.EXAMPLE_ORG_USERNAME }}",
"password": "${{ secrets.EXAMPLE_ORG_PASSWORD }}"
}
}
}
Se você precisar executar várias linhas de código PHP em seu fluxo de trabalho, poderá fazer isso facilmente, sem salvá-lo em um arquivo.
Coloque o código na propriedade run de uma etapa e especifique o shell como php {0}
.
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
- name : Run PHP code
shell : php {0}
run : |
<?php
$welcome = "Hello, world";
echo $welcome;
Correspondentes de problemas são configurações json
que identificam erros e avisos em seus logs e os mostram com destaque na UI do GitHub Actions, destacando-os e criando anotações de código.
Configure correspondências de problemas para sua saída PHP
adicionando esta etapa após a etapa setup-php
.
- name : Setup problem matchers for PHP
run : echo "::add-matcher::${{ runner.tool_cache }}/php.json"
Configure correspondências de problemas para sua saída PHPUnit
adicionando esta etapa após a etapa setup-php
.
- name : Setup problem matchers for PHPUnit
run : echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
PHPStan oferece suporte a relatórios de erros em GitHub Actions, portanto, não requer correspondências de problemas.
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : phpstan
- name : Run PHPStan
run : phpstan analyse src
O Salmo oferece suporte ao relatório de erros no GitHub Actions com um formato de saída github
.
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : psalm
- name : Run Psalm
run : psalm --output-format=github
Para ferramentas que suportam relatórios checkstyle
como phpstan
, psalm
, php-cs-fixer
e phpcs
você pode usar cs2pr
para anotar seu código.
Para exemplos, consulte a documentação do cs2pr.
Aqui está um exemplo com
phpcs
.
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : cs2pr, phpcs
- name : Run phpcs
run : phpcs -q --report=checkstyle src | cs2pr
Exemplos de uso de setup-php
com vários frameworks e pacotes PHP.
Estrutura/Pacote | Continua | Fluxo de trabalho |
---|---|---|
Fogo Negro | macOS , ubuntu e windows | fogo negro.yml |
Jogador Fogo Negro | macOS , ubuntu e windows | blackfire-player.yml |
CakePHP com MySQL e Redis | ubuntu | cakephp-mysql.yml |
CakePHP com PostgreSQL e Redis | ubuntu | cakephp-postgres.yml |
CakePHP sem serviços | macOS , ubuntu e windows | bolophp.yml |
Code Igniter | macOS , ubuntu e windows | codeigniter.yml |
Lâminas MVC | macOS , ubuntu e windows | lâminas-mvc.yml |
Laravel com MySQL e Redis | ubuntu | laravel-mysql.yml |
Laravel com PostgreSQL e Redis | ubuntu | laravel-postgres.yml |
Laravel sem serviços | macOS , ubuntu e windows | laravel.yml |
Lumen com MySQL e Redis | ubuntu | lumen-mysql.yml |
Lumen com PostgreSQL e Redis | ubuntu | lumen-postgres.yml |
Lúmen sem serviços | macOS , ubuntu e windows | lumen.yml |
Phalcon com MySQL | ubuntu | phalcon-mysql.yml |
Phalcon com PostgreSQL | ubuntu | phalcon-postgres.yml |
Raízes/rocha | ubuntu | base rochosa.yml |
Raízes/sálvia | ubuntu | sábio.yml |
Estrutura fina | macOS , ubuntu e windows | slim-framework.yml |
Symfony com MySQL | ubuntu | symfony-mysql.yml |
Symfony com PostgreSQL | ubuntu | symfony-postgres.yml |
Symfony sem serviços | macOS , ubuntu e windows | symfony.yml |
Kit inicial Yii2 com MySQL | ubuntu | yii2-mysql.yml |
Kit inicial Yii2 com PostgreSQL | ubuntu | yii2-postgres.yml |
v2
como versão setup-php
. É uma tag contínua e é sincronizada com as versões secundárias e de patch mais recentes. Com v2
você obtém automaticamente correções de bugs, patches de segurança, novos recursos e suporte para as versões mais recentes do PHP.verbose
pode ser usada temporariamente. Ele gera todos os logs e também é sincronizado com os lançamentos mais recentes.main
como versão, pois isso pode interromper seu fluxo de trabalho após lançamentos principais, pois eles apresentam alterações significativas.v1
ou uma versão 1.xy
, você deve mudar para v2, pois v1
não é mais compatível. setup-php
é um trabalho derivado do logotipo php.net e está licenciado sob a licença CC BY-SA 4.0. Contribuições são bem-vindas!
Contribuidores de setup-php
e outros projetos relacionados
setup-php
.Muitos usuários e organizações oferecem suporte ao setup-php por meio dos patrocinadores do GitHub.
Essas empresas fornecem generosamente ao setup-php seus produtos e serviços para auxiliar no desenvolvimento deste projeto.