今天我們來聊聊GitLab Pipeline和PHP。GitLab是現代開發團隊不可或缺的工具,在一個版本控制系統中集成了拉取請求、CI/CD和代碼質量管理等流程。現在我們來學習如何在PHP項目中使用GitLab Pipeline。
需要注意的是,GitLab Pipeline并不能幫你處理每個Web請求。它的作用是在你將代碼提交到GitLab時,運行自動化測試、構建和部署代碼等任務。例如,當你在GitLab上創建了一個新分支時,Pipeline可以根據配置文件來自動運行PHPUnit測試等。
下面我們來看一個使用Pipeline的PHP項目實例。在您的項目中,創建一個名為.gitlab-ci.yml的文件,輸入以下內容:
image: php:7.4
before_script:
- apt update && apt install -y zip unzip
- curl -sS https://getcomposer.org/installer -o composer-setup.php
- php composer-setup.php --install-dir=/usr/local/bin --filename=composer
- composer install
test:
script:
- vendor/bin/phpunit
這個文件的含義是,在Docker PHP 7.4鏡像上運行CI jobs,unzip和zip可選,這里可以忽略。PHPUnit是PHP的流行測試框架。Composer是PHP包管理器,您的項目中應該包含一個名為composer.json的文件,它描述了項目的依賴關系。當Pipeline運行時,composer會自動安裝這些依賴項。
當您將這個文件添加到您的git倉庫中時,GitLab會開始啟動CI/CD jobs,并在瀏覽器和命令行上顯示狀態。如果您在Jobs頁面上看到綠色的對號,表示測試通過,您的CI Pipeline工作正常。
當您在PHP項目中使用GitLab Pipeline時,如果您想在每次Push或MR時部署自動化流程,您可以將所有部署相關的代碼添加到.gitlab-ci.yml配置文件中的deploy階段。
接下來,我們來看一個更完整的配置文件例子。
image: php:7.4
before_script:
- apt-get update
- apt-get install -y zip unzip
- curl -sS https://getcomposer.org/installer -o composer-setup.php
- php composer-setup.php --install-dir=/usr/local/bin --filename=composer
- composer install
test:
script:
- phpunit
deploy:
stage: deploy
script:
- ssh user@your_server_ip \
"cd /var/www/html && \
git checkout -f && \
composer install --optimize-autoloader --no-dev -n && \
php artisan migrate:fresh --seed"
在這個例子中,我們添加了一個deploy階段,包含了ssh user@your_server_ip命令,其中您應該使用真實的IP地址。該命令指示GitLab Pipeline連接到您的服務器,調用git checkout -f命令拉取最新代碼。然后,它會安裝composer依賴項,最后運行migrate:fresh --seed命令來重建數據庫表和種子數據。
GitLab Pipeline可以與整個PHP項目相結合,它可以運行PHPUnit測試、構建和部署自動化流程,以及其他任務的自動化。總之,GitLab Pipeline可確保您的代碼庫保持清潔,測試通過,而且代碼部署和升級都能自動進行。