Skip to content

Commit 9bcbf7f

Browse files
authored
Resolve PHP version dynamically from lang-php (#45)
1 parent cb2828c commit 9bcbf7f

1 file changed

Lines changed: 21 additions & 6 deletions

File tree

.github/workflows/build.yml

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,21 @@ jobs:
8787
- name: Docker build
8888
run: ./scripts/build-dockerfile.sh ${{ matrix.stack.name }}
8989

90+
- name: Resolve PHP version
91+
uses: actions/github-script@v7
92+
with:
93+
script: |
94+
const minor = '${{ matrix.series.php }}';
95+
const prefix = '${{ matrix.stack.upstream }}';
96+
const re = new RegExp(`^php-(${minor.replace(/\./g, '\\.')}\.\\d+)$`);
97+
const { data } = await github.rest.repos.listReleases({ owner: 'php', repo: 'php-src', per_page: 100 });
98+
for (const { tag_name, prerelease, draft } of data) {
99+
const m = !prerelease && !draft && tag_name.match(re);
100+
if (!m) continue;
101+
const res = await fetch(`https://lang-php.s3.amazonaws.com/${prefix}php-${m[1]}.tar.gz`, { method: 'HEAD' });
102+
if (res.ok) { core.exportVariable('PHP_VERSION', m[1]); break; }
103+
}
104+
90105
- name: Build liblzf library
91106
run: ./scripts/build-lib.sh ${{ matrix.stack.name }} liblzf "${{ matrix.series.liblzf }}" true
92107

@@ -97,35 +112,35 @@ jobs:
97112
run: ./scripts/build-lib.sh ${{ matrix.stack.name }} zstd "${{ matrix.series.zstd }}" true
98113

99114
- name: Build igbinary extension
100-
run: ./scripts/build-extension.sh ${{ matrix.stack.name }} ${{ matrix.series.php }} ${{ matrix.series.version }} igbinary "${{ matrix.series.igbinary }}" "php-${{ matrix.series.php }}.*" ${{ matrix.stack.upstream }} true
115+
run: ./scripts/build-extension.sh ${{ matrix.stack.name }} ${{ matrix.series.php }} ${{ matrix.series.version }} igbinary "${{ matrix.series.igbinary }}" "php-${{ env.PHP_VERSION }}" ${{ matrix.stack.upstream }} true
101116

102117
- name: Build msgpack extension
103-
run: ./scripts/build-extension.sh ${{ matrix.stack.name }} ${{ matrix.series.php }} ${{ matrix.series.version }} msgpack "${{ matrix.series.msgpack }}" "php-${{ matrix.series.php }}.*" ${{ matrix.stack.upstream }} true
118+
run: ./scripts/build-extension.sh ${{ matrix.stack.name }} ${{ matrix.series.php }} ${{ matrix.series.version }} msgpack "${{ matrix.series.msgpack }}" "php-${{ env.PHP_VERSION }}" ${{ matrix.stack.upstream }} true
104119

105120
- name: Build redis extensions
106121
run: |
107122
set -e
108123
for VERSION in ${{ join(matrix.series.redis, ' ') }}; do
109-
./scripts/build-extension.sh ${{ matrix.stack.name }} ${{ matrix.series.php }} ${{ matrix.series.version }} redis "$VERSION" "php-${{ matrix.series.php }}.*,libraries/liblzf-*,libraries/lz4-*,libraries/zstd-*,extensions/no-debug-non-zts-${{ matrix.series.version }}/igbinary-*,extensions/no-debug-non-zts-${{ matrix.series.version }}/msgpack-*" ${{ matrix.stack.upstream }} true
124+
./scripts/build-extension.sh ${{ matrix.stack.name }} ${{ matrix.series.php }} ${{ matrix.series.version }} redis "$VERSION" "php-${{ env.PHP_VERSION }},libraries/liblzf-*,libraries/lz4-*,libraries/zstd-*,extensions/no-debug-non-zts-${{ matrix.series.version }}/igbinary-*,extensions/no-debug-non-zts-${{ matrix.series.version }}/msgpack-*" ${{ matrix.stack.upstream }} true
110125
done
111126
112127
- name: Build relay extension
113128
run: |
114129
set -e
115130
for VERSION in ${{ join(matrix.series.relay, ' ') }}; do
116-
./scripts/build-extension.sh ${{ matrix.stack.name }} ${{ matrix.series.php }} ${{ matrix.series.version }} relay "$VERSION" "php-${{ matrix.series.php }}.*,libraries/liblzf-*,libraries/lz4-*,libraries/zstd-*,extensions/no-debug-non-zts-${{ matrix.series.version }}/igbinary-*,extensions/no-debug-non-zts-${{ matrix.series.version }}/msgpack-*" ${{ matrix.stack.upstream }} true
131+
./scripts/build-extension.sh ${{ matrix.stack.name }} ${{ matrix.series.php }} ${{ matrix.series.version }} relay "$VERSION" "php-${{ env.PHP_VERSION }},libraries/liblzf-*,libraries/lz4-*,libraries/zstd-*,extensions/no-debug-non-zts-${{ matrix.series.version }}/igbinary-*,extensions/no-debug-non-zts-${{ matrix.series.version }}/msgpack-*" ${{ matrix.stack.upstream }} true
117132
done
118133
119134
- name: Build swoole extension
120135
run: |
121136
set -e
122137
for VERSION in ${{ join(matrix.series.swoole, ' ') }}; do
123-
./scripts/build-extension.sh ${{ matrix.stack.name }} ${{ matrix.series.php }} ${{ matrix.series.version }} swoole "$VERSION" "php-${{ matrix.series.php }}.*" ${{ matrix.stack.upstream }} true
138+
./scripts/build-extension.sh ${{ matrix.stack.name }} ${{ matrix.series.php }} ${{ matrix.series.version }} swoole "$VERSION" "php-${{ env.PHP_VERSION }}" ${{ matrix.stack.upstream }} true
124139
done
125140
126141
- name: Build openswoole extension
127142
run: |
128143
set -e
129144
for VERSION in ${{ join(matrix.series.openswoole, ' ') }}; do
130-
./scripts/build-extension.sh ${{ matrix.stack.name }} ${{ matrix.series.php }} ${{ matrix.series.version }} openswoole "$VERSION" "php-${{ matrix.series.php }}.*" ${{ matrix.stack.upstream }} true
145+
./scripts/build-extension.sh ${{ matrix.stack.name }} ${{ matrix.series.php }} ${{ matrix.series.version }} openswoole "$VERSION" "php-${{ env.PHP_VERSION }}" ${{ matrix.stack.upstream }} true
131146
done

0 commit comments

Comments
 (0)