Publish artifacts as zip #14
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build | |
on: | |
push: | |
branches: [master] | |
pull_request: | |
release: | |
types: [created] | |
create: | |
jobs: | |
windows: | |
runs-on: windows-latest | |
name: "Windows: Build and test" | |
defaults: | |
run: | |
shell: cmd | |
strategy: | |
fail-fast: false | |
matrix: | |
php: ["8.0", "8.1", "8.2", "8.3", "8.4"] | |
arch: [x86, x64] | |
ts: [nts, ts] | |
experimental: [false] | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
- name: Extract Version | |
shell: powershell | |
run: | | |
chcp 65001 | |
$r = Select-String -Path php_ssh2.h -Pattern 'PHP_SSH2_VERSION\s+"(.*)"' | |
$s = $r.Matches[0].Groups[1] | |
echo "$s" | |
$extension_version = 'EXTENSION_VERSION=' + $s | |
echo $extension_version >> $env:GITHUB_ENV | |
- name: Setup PHP | |
id: setup-php | |
uses: php/[email protected] | |
with: | |
version: ${{matrix.php}} | |
arch: ${{matrix.arch}} | |
ts: ${{matrix.ts}} | |
deps: "libssh2,openssl,zlib" | |
- name: Enable Developer Command Prompt | |
uses: ilammy/msvc-dev-cmd@v1 | |
with: | |
arch: ${{matrix.arch}} | |
toolset: ${{steps.setup-php.outputs.toolset}} | |
- name: Generate Build Files | |
run: phpize | |
- name: Configure Build | |
run: configure --with-ssh2 --with-prefix=${{steps.setup-php.outputs.prefix}} | |
- name: Build | |
run: nmake | |
- name: Define Module Env | |
shell: powershell | |
run: | | |
chcp 65001 | |
$dir = (Get-Location).Path + '\' | |
if ('x64' -eq '${{matrix.arch}}') { $dir = $dir + 'x64\' } | |
$dir = $dir + 'Release' | |
if ('ts' -eq '${{matrix.ts}}') { $dir = $dir + '_TS' } | |
$artifact_name = 'php_ssh2-${{env.EXTENSION_VERSION}}-${{matrix.php}}' | |
if ('7.2' -eq '${{matrix.php}}') { $artifact_name = $artifact_name + '-vc15' } | |
if ('7.3' -eq '${{matrix.php}}') { $artifact_name = $artifact_name + '-vc15' } | |
if ('7.4' -eq '${{matrix.php}}') { $artifact_name = $artifact_name + '-vc15' } | |
if ('8.0' -eq '${{matrix.php}}') { $artifact_name = $artifact_name + '-vs16' } | |
if ('8.1' -eq '${{matrix.php}}') { $artifact_name = $artifact_name + '-vs16' } | |
if ('8.2' -eq '${{matrix.php}}') { $artifact_name = $artifact_name + '-vs16' } | |
if ('8.3' -eq '${{matrix.php}}') { $artifact_name = $artifact_name + '-vs16' } | |
if ('8.4' -eq '${{matrix.php}}') { $artifact_name = $artifact_name + '-vs17' } | |
if ('nts' -eq '${{matrix.ts}}') { $artifact_name = $artifact_name + '-nts' } | |
if ('x64' -eq '${{matrix.arch}}') { $artifact_name = $artifact_name + '-x86_64' } | |
$extension_artifact_name = "ARTIFACT_NAME=" + $artifact_name | |
echo $extension_artifact_name >> $env:GITHUB_ENV | |
$from = $dir + '\php_ssh2.dll' | |
$to = $from + ".zip" | |
Compress-Archive $from $to | |
$extension_artifact = "ARTIFACT=" + $from | |
echo $extension_artifact >> $env:GITHUB_ENV | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{env.ARTIFACT_NAME}} | |
path: ${{env.ARTIFACT}} | |
- name: Publish Binaries to Release | |
if: ${{ startsWith(github.ref, 'refs/tags') }} | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
asset_name: ${{env.ARTIFACT_NAME}}.zip | |
file: ${{env.ARTIFACT}}.zip |