@@ -11,40 +11,58 @@ concurrency: production
11
11
12
12
jobs :
13
13
deployment :
14
+ timeout-minutes : 8
14
15
runs-on : ${{ matrix.os }}
15
16
strategy :
16
- fail-fast : true
17
17
matrix :
18
- os : ["ubuntu-22.04"]
19
- php : ["8.3"]
18
+ os :
19
+ - ubuntu-latest
20
+ php-version :
21
+ - ' 8.3'
22
+ dependencies :
23
+ - locked
20
24
environment :
21
25
name : production
22
26
url : https://prod.laravel-starter-tpl.wayof.dev
23
27
24
28
steps :
29
+ - name : 🛠️ Setup PHP
30
+ uses : shivammathur/setup-php@2.30.4
31
+ with :
32
+ php-version : ${{ matrix.php-version }}
33
+ extensions : curl, libxml, mbstring, zip, fileinfo, decimal, pdo, pdo_mysql
34
+ ini-values : error_reporting=E_ALL
35
+ coverage : none
36
+
25
37
- name : 📦 Check out the codebase
26
- uses : actions/checkout@v4
38
+ uses : actions/checkout@v4.1.6
27
39
with :
28
40
fetch-depth : 0
29
41
30
- - name : 🛠️ Setup PHP
31
- uses : shivammathur/setup-php@v2
42
+ - name : 🛠️ Setup problem matchers
43
+ run : |
44
+ echo "::add-matcher::${{ runner.tool_cache }}/php.json"
45
+
46
+ - name : 🤖 Validate composer.json and composer.lock
47
+ run : make validate-composer
48
+
49
+ - name : 🔍 Get composer cache directory
50
+ uses : wayofdev/gh-actions/actions/composer/get-cache-directory@v3.1.0
32
51
with :
33
- php-version : ${{ matrix.php }}
34
- extensions : curl, libxml, mbstring, zip, fileinfo, decimal
35
- ini-values : error_reporting=E_ALL
36
- tools : composer:v2
52
+ working-directory : app
37
53
38
- - name : ♻️ Restore cached backend dependencies
39
- id : cached-composer-dependencies
40
- uses : actions/cache@v4
54
+ - name : ♻️ Restore cached dependencies installed with composer
55
+ uses : actions/cache@v4.0.2
41
56
with :
42
- path : vendor
43
- key : vendor-${{ runner.os }}-${{ hashFiles('**/composer.lock') }}-${{ matrix.php }}
57
+ path : ${{ env.COMPOSER_CACHE_DIR }}
58
+ key : php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}
59
+ restore-keys : php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-
44
60
45
- - name : 📥 Install backend dependencies
46
- if : steps.cached-composer-dependencies.outputs.cache-hit != 'true'
47
- run : cd app && composer install
61
+ - name : 📥 Install "${{ matrix.dependencies }}" dependencies with composer
62
+ uses : wayofdev/gh-actions/actions/composer/install@v3.1.0
63
+ with :
64
+ working-directory : app
65
+ dependencies : ${{ matrix.dependencies }}
48
66
49
67
- name : 📤 Deploy production environment
50
68
uses : deployphp/action@v1
@@ -54,14 +72,10 @@ jobs:
54
72
deployer-version : 7.4.0
55
73
sub-directory : app
56
74
env :
57
- DEPLOYER_STAGING_SLACK_WEBHOOK : ${{ secrets.DEPLOYER_STAGING_SLACK_WEBHOOK }}
58
- DEPLOYER_STAGING_REMOTE_USER : ${{ secrets.DEPLOYER_STAGING_REMOTE_USER }}
59
- DEPLOYER_STAGING_HOST : " staging.laravel-starter-tpl.wayof.dev"
60
- DEPLOYER_STAGING_BRANCH : " develop"
61
75
DEPLOYER_PROD_SLACK_WEBHOOK : ${{ secrets.DEPLOYER_PROD_SLACK_WEBHOOK }}
62
76
DEPLOYER_PROD_REMOTE_USER : ${{ secrets.DEPLOYER_PROD_REMOTE_USER }}
63
- DEPLOYER_PROD_HOST : " prod.laravel-starter-tpl.wayof.dev"
64
- DEPLOYER_PROD_BRANCH : " master"
77
+ DEPLOYER_PROD_HOST : prod.laravel-starter-tpl.wayof.dev
78
+ DEPLOYER_PROD_BRANCH : master
65
79
66
80
- name : 📦 Create sentry release
67
81
uses : getsentry/action-release@v1
0 commit comments