11name : Build for windows
22on :
3+ workflow_call :
34 push :
45 branches :
56 - main
67 - feature/*
78 - bugfix/*
8- tags :
9- - " v* "
9+ - chore/*
10+ - security/*
1011 pull_request :
1112 branches :
1213 - main
1314
1415permissions :
15- contents : write
16+ contents : read
1617
1718env :
1819 ZLIB_COMMIT : 09155eaa2f9270dc4ed1fa13e2b4b2613e6e4851
1920 ZSTD_COMMIT : 794ea1b0afca0f020f4e57b6732332231fb23c70
2021 BROTLI_COMMIT : ed738e842d2fbdf2d6459e39267a633c4a9b2f5d
2122 BORINGSSL_COMMIT : 673e61fc215b178a90c0e67858bbf162c8158993
22- CURL_TAG : curl-8_14_1 # using tags is less secure, but easier to maintain
23+ CURL_TAG : curl-8_15_0 # using tags is less secure, but easier to maintain
2324 NGHTTP2_COMMIT : 8f44147c385fb1ed93a6f39911eeb30279bfd2dd
24- NGHTTP3_TAG : v1.9 .0
25- NGTCP2_TAG : v1.11 .0
25+ NGHTTP3_TAG : v1.15 .0
26+ NGTCP2_TAG : v1.20 .0
2627
2728jobs :
2829 build-windows :
2930 name : Build windows binaries
30- runs-on : windows-latest
3131 strategy :
3232 matrix :
3333 include :
34- - { sys: vcvars64, env: x86_64 }
35- - { sys: vcvars32, env: i686 }
34+ - { sys: vcvars64, env: x86_64, runner: windows-latest }
35+ - { sys: vcvars32, env: i686, runner: windows-latest }
36+ - { sys: vcvarsarm64, env: arm64, runner: windows-11-arm }
37+ runs-on : ${{ matrix.runner }}
3638 steps :
3739 - name : configure Pagefile
3840 uses : al-cheb/configure-pagefile-action@v1.3
@@ -41,10 +43,10 @@ jobs:
4143 maximum-size : 16GB
4244 disk-root : " C:"
4345
44- - name : Install python 3.10
46+ - name : Install python 3.11
4547 uses : actions/setup-python@v4
4648 with :
47- python-version : ' 3.10 '
49+ python-version : ' 3.11 '
4850
4951 - name : Check out the repo
5052 uses : actions/checkout@v2
5355 shell : cmd
5456 run : choco install nasm -y
5557
58+ - name : Install Ninja for Win-ARM64
59+ shell : pwsh
60+ if : matrix.os == 'windows-11-arm'
61+ run : |
62+ Invoke-WebRequest https://github.com/ninja-build/ninja/releases/download/v1.13.1/ninja-winarm64.zip -OutFile ninja-winarm64.zip
63+ Expand-Archive ninja-winarm64.zip -DestinationPath ninja
64+ Copy-Item ninja\ninja.exe -Destination "C:\Windows\System32"
65+
5666 - name : Fetch and patch deps
5767 shell : bash
5868 run : ./win/deps.sh
6373 - name : Build
6474 shell : cmd
6575 run : ./win/build.bat ${{ matrix.sys }}
76+ env :
77+ DISABLE_ASM_ARM64 : ${{ matrix.env == 'arm64' && 'true' || 'false' }}
6678
6779 - name : Build tarball
6880 shell : bash
7688 - name : Upload artifacts
7789 uses : actions/upload-artifact@v4
7890 with :
79- name : libcurl-impersonate. ${{ matrix.env }}-win32.tar.gz
91+ name : artifacts.windows. ${{ matrix.env }}
8092 path : ./libcurl-impersonate*.tar.gz
81-
82- - name : Upload release files
83- uses : softprops/action-gh-release@v1
84- if : startsWith(github.ref, 'refs/tags/')
85- with :
86- prerelease : true
87- files : libcurl-impersonate-${{ github.head_ref || github.ref_name }}.${{ matrix.env }}-win32.tar.gz
0 commit comments