aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2024-06-06 22:11:18 +0200
committerOvahlord <dreadkiller@gmx.de>2024-06-20 01:16:54 +0200
commita38c5bd7d4eda6919de95a2b10876154ddfd5b62 (patch)
treec1d099b235061ac206b6fe919aff3a8d4ecef244
parentd6b7d77222f5fed485afd6b11ccfbdb244779ec7 (diff)
CI/GitHub: Cache OpenSSL installation
(cherry picked from commit dc20f5aad421d10748c5ceace47c346be4fc15b3)
-rw-r--r--.github/workflows/win-x64-build.yml21
1 files changed, 17 insertions, 4 deletions
diff --git a/.github/workflows/win-x64-build.yml b/.github/workflows/win-x64-build.yml
index ab9edc45000..f67628fef09 100644
--- a/.github/workflows/win-x64-build.yml
+++ b/.github/workflows/win-x64-build.yml
@@ -21,23 +21,36 @@ jobs:
echo "OPENSSL_ROOT_DIR=C:/libs/openssl" >> $env:GITHUB_ENV
echo "MYSQL_ROOT_DIR=C:/Program Files/MySQL/MySQL Server 8.0" >> $env:GITHUB_ENV
- - name: Download and install Openssl 3.x
+ - name: Get current OpenSSL version
+ id: openssl-info
run: |
$VersionsUrl = "https://api.github.com/repos/slproweb/opensslhashes/contents/win32_openssl_hashes.json"
$Headers = @{
Accept="application/vnd.github.raw+json"
Authorization="Bearer ${{ secrets.GITHUB_TOKEN }}"
}
- $Url = (Invoke-RestMethod $VersionsUrl -Headers $Headers).files.PSObject.Properties |
+ $openSSL = (Invoke-RestMethod $VersionsUrl -Headers $Headers).files.PSObject.Properties |
Select-Object -ExpandProperty Value |
Where-Object { $_.arch -eq 'INTEL' } |
Where-Object { $_.bits -eq '64' } |
Where-Object { $_.light -eq $false } |
Where-Object { $_.installer -eq 'exe' } |
Sort-Object -Descending @{ Expression = { [version]$_.basever } } |
- Select-Object -First 1 -ExpandProperty url
+ Select-Object -First 1
+ [System.String]::Format("cache-key=openssl-{0}-{1}-{2}", $openSSL.basever, $openSSL.arch, $openSSL.bits) >> $env:GITHUB_OUTPUT
+ [System.String]::Format("url={0}", $openSSL.url) >> $env:GITHUB_OUTPUT
+
+ - name: Cache OpenSSL
+ id: cache-openssl
+ uses: actions/cache@v4
+ with:
+ path: ${{ env.OPENSSL_ROOT_DIR }}
+ key: ${{ steps.openssl-info.outputs.cache-key }}
- (New-Object System.Net.WebClient).DownloadFile($Url, "${{ env.TEMP }}\openssl.exe")
+ - name: Download and install Openssl 3.x
+ if: ${{ steps.cache-openssl.outputs.cache-hit != 'true' }}
+ run: |
+ (New-Object System.Net.WebClient).DownloadFile("${{ steps.openssl-info.outputs.url }}", "${{ env.TEMP }}\openssl.exe")
Start-Process -Wait -FilePath "${{ env.TEMP }}\openssl.exe" "/SILENT","/SP-","/SUPPRESSMSGBOXES",/DIR=${{ env.OPENSSL_ROOT_DIR }}
# Quick Openssl install test