-
-
Notifications
You must be signed in to change notification settings - Fork 2
143 lines (125 loc) · 3.62 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
name: CI
on:
push:
branches: [1.x]
pull_request_target:
release:
types: [created]
jobs:
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.1
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/phpmyadmin
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: phpmyadmin.phar
path: bin/phpmyadmin.phar
composer-validate:
uses: zenstruck/.github/.github/workflows/php-composer-validate.yml@main
sca:
uses: zenstruck/.github/.github/workflows/php-stan.yml@main
with:
php: 8.1
test-phar:
runs-on: ubuntu-latest
name: Test PHAR
needs:
- build-phar
services:
mysql:
image: mysql:5.7
env:
MYSQL_ROOT_PASSWORD: 1234
ports:
- 3306:3306
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
steps:
- uses: actions/download-artifact@v4
with:
name: phpmyadmin.phar
path: .
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 8.1
coverage: none
tools: symfony
- name: Test init/run
run: |
mv phpmyadmin.phar phpmyadmin
chmod +x phpmyadmin
./phpmyadmin init --no-interaction --password=1234
./phpmyadmin
./phpmyadmin status
sleep 2
curl -I http://127.0.0.1:8000
# - name: Test self-update/rollback
# if: github.event_name != 'release'
# run: |
# ./phpmyadmin --version
# ./phpmyadmin self-update
# ./phpmyadmin --version
# ./phpmyadmin self-update --rollback
# ./phpmyadmin --version
publish-phar:
runs-on: ubuntu-latest
name: Publish PHAR
needs:
- composer-validate
- test-phar
- sca
if: github.event_name == 'release'
steps:
- uses: actions/download-artifact@v4
with:
name: phpmyadmin.phar
path: .
- name: Upload phpmyadmin.phar
uses: shogo82148/actions-upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: phpmyadmin.phar
asset_name: phpmyadmin.phar
asset_content_type: application/zip
fixcs:
name: Run php-cs-fixer
needs: sync-with-template
if: ${{ github.event_name == 'push' || github.event_name == 'schedule' }}
runs-on: ubuntu-latest
steps:
- uses: zenstruck/.github@php-cs-fixer
with:
php: 8
key: ${{ secrets.GPG_PRIVATE_KEY }}
token: ${{ secrets.COMPOSER_TOKEN }}
sync-with-template:
name: Sync meta files
if: ${{ github.event_name == 'push' || github.event_name == 'schedule' }}
runs-on: ubuntu-latest
steps:
- uses: zenstruck/.github@sync-with-template
with:
key: ${{ secrets.GPG_PRIVATE_KEY }}
token: ${{ secrets.COMPOSER_TOKEN }}
codecov: false