-
-
Notifications
You must be signed in to change notification settings - Fork 2
146 lines (125 loc) · 3.71 KB
/
ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
name: CI
on:
push:
branches: [1.x]
pull_request_target:
release:
types: [created]
env:
GITHUB_API_TOKEN: ${{ secrets.GH_API_TOKEN }}
jobs:
tests:
name: PHP ${{ matrix.php }}
runs-on: ubuntu-latest
strategy:
matrix:
php: [8.0, 8.1, 8.2]
steps:
- uses: zenstruck/.github/actions/php-test-symfony@main
with:
php: ${{ matrix.php }}
deps: highest
build-phar:
name: Build PHAR
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 8.0
coverage: none
- name: Install dependencies
uses: ramsey/composer-install@v3
- name: Download Box
run: wget https://github.com/box-project/box/releases/download/3.16.0/box.phar
- name: Update Version
if: github.event_name == 'release'
run: sed -i "s/@dev/$TAG/" bin/changelog
env:
TAG: ${{ github.event.release.tag_name }}
- name: Compile PHAR
run: php box.phar compile
- uses: actions/upload-artifact@v4
name: Upload the PHAR artifact
with:
name: changelog.phar
path: bin/changelog.phar
composer-validate:
uses: zenstruck/.github/.github/workflows/php-composer-validate.yml@main
test-phar:
runs-on: ubuntu-latest
name: Test PHAR
needs:
- build-phar
- tests
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 8.0
coverage: none
- uses: actions/download-artifact@v4
with:
name: changelog.phar
path: .
- name: Prepare PHAR
run: |
mv changelog.phar changelog
chmod +x changelog
- name: Test generate
run: |
./changelog
- name: Test self-update/rollback
if: github.event_name != 'release'
run: |
./changelog --version
./changelog self-update
./changelog --version
# ./changelog self-update --rollback
# ./changelog --version
publish-phar:
runs-on: ubuntu-latest
name: Publish PHAR
needs:
- composer-validate
- test-phar
if: github.event_name == 'release'
steps:
- uses: actions/download-artifact@v4
with:
name: changelog.phar
path: .
- name: Upload changelog.phar
uses: shogo82148/actions-upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: changelog.phar
asset_name: changelog.phar
asset_content_type: application/zip
fixcs:
name: Run php-cs-fixer
needs: [composer-validate, test-phar]
if: (github.event_name == 'push' || github.event_name == 'schedule') && !startsWith(github.ref, 'refs/tags') && github.repository_owner == 'zenstruck'
runs-on: ubuntu-latest
steps:
- uses: zenstruck/.github/actions/php-cs-fixer@main
with:
php: 8
key: ${{ secrets.GPG_PRIVATE_KEY }}
token: ${{ secrets.COMPOSER_TOKEN }}
sync-with-template:
name: Sync meta files
needs: [composer-validate, test-phar]
if: (github.event_name == 'push' || github.event_name == 'schedule') && !startsWith(github.ref, 'refs/tags') && github.repository_owner == 'zenstruck'
runs-on: ubuntu-latest
steps:
- uses: zenstruck/.github/actions/sync-with-template@main
with:
key: ${{ secrets.GPG_PRIVATE_KEY }}
token: ${{ secrets.COMPOSER_TOKEN }}