From 62e7f0ba8adfdad2766537ce427fc2716d784443 Mon Sep 17 00:00:00 2001 From: Ilia Shipitsin Date: Fri, 5 Apr 2024 22:08:51 +0200 Subject: [PATCH 1/3] CI: adopt windows_build.bat for GitHub actions --- .ci/azure-pipelines/windows_build.bat | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.ci/azure-pipelines/windows_build.bat b/.ci/azure-pipelines/windows_build.bat index 6f533c72..b8491266 100644 --- a/.ci/azure-pipelines/windows_build.bat +++ b/.ci/azure-pipelines/windows_build.bat @@ -14,6 +14,12 @@ if %SE_BUILD_NUMBER_TOKEN_LENGTH% equ 64 ( set BUILD_NUMBER=0 ) + +if "%BUILD_BINARIESDIRECTORY%"=="" (set BUILD_BINARIESDIRECTORY=build) +if "%BUILD_SOURCESDIRECTORY%"=="" (set BUILD_SOURCESDIRECTORY=%cd%) + +if not exist %BUILD_BINARIESDIRECTORY% mkdir %BUILD_BINARIESDIRECTORY% + cd %BUILD_BINARIESDIRECTORY% call "%VCVARS_PATH%" @@ -21,6 +27,7 @@ call "%VCVARS_PATH%" cmake -G "Ninja" -DCMAKE_TOOLCHAIN_FILE="C:\vcpkg\scripts\buildsystems\vcpkg.cmake" -DVCPKG_TARGET_TRIPLET=%VCPKG_TRIPLET% -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_C_COMPILER="%COMPILER_PATH%" -DCMAKE_CXX_COMPILER="%COMPILER_PATH%" -DBUILD_NUMBER=%BUILD_NUMBER% "%BUILD_SOURCESDIRECTORY%" cmake --build . +if "%BUILD_STAGINGDIRECTORY%"=="" (set BUILD_STAGINGDIRECTORY=%cd%) mkdir "%BUILD_STAGINGDIRECTORY%\installers" vpnsetup /SFXMODE:vpnclient /SFXOUT:"%BUILD_STAGINGDIRECTORY%\installers\softether-vpnclient-%VERSION%.%BUILD_NUMBER%.%ARCHITECTURE%.exe" vpnsetup /SFXMODE:vpnserver_vpnbridge /SFXOUT:"%BUILD_STAGINGDIRECTORY%\installers\softether-vpnserver_vpnbridge-%VERSION%.%BUILD_NUMBER%.%ARCHITECTURE%.exe" From 7981e16e0bd6329d79721621fb202e6213b6ecc1 Mon Sep 17 00:00:00 2001 From: Ilia Shipitsin Date: Fri, 5 Apr 2024 22:09:39 +0200 Subject: [PATCH 2/3] CI: add windows GitHub Actions --- .github/workflows/windows.yml | 46 +++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 .github/workflows/windows.yml diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml new file mode 100644 index 00000000..4b798b6b --- /dev/null +++ b/.github/workflows/windows.yml @@ -0,0 +1,46 @@ +on: [push, pull_request] + +permissions: + contents: read + +jobs: + build_and_test: + strategy: + matrix: + platform: [ + { ARCHITECTURE: x86, COMPILER_PATH: "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/Llvm/bin/clang-cl.exe", VCPKG_TRIPLET: "x86-windows-static", VCVARS_PATH: "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Auxiliary/Build/vcvars32.bat"}, + { ARCHITECTURE: x64, COMPILER_PATH: "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/Llvm/x64/bin/clang-cl.exe", VCPKG_TRIPLET: "x64-windows-static", VCVARS_PATH: "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Auxiliary/Build/vcvars64.bat"} + ] + runs-on: windows-latest + name: ${{ matrix.platform.ARCHITECTURE }} + steps: + - uses: actions/checkout@v4 + with: + submodules: true + - name: Cache vcpkg + uses: actions/cache@v4 + with: + path: 'build/vcpkg_installed/' + key: vcpkg-${{ matrix.platform.VCPKG_TRIPLET }} + - name: Build + env: + ARCHITECTURE: ${{ matrix.platform.ARCHITECTURE }} + COMPILER_PATH: ${{ matrix.platform.COMPILER_PATH }} + VCPKG_TRIPLET: ${{ matrix.platform.VCPKG_TRIPLET }} + VCVARS_PATH: ${{ matrix.platform.VCVARS_PATH }} + run: .ci/azure-pipelines/windows_build.bat + - name: Test + shell: powershell + run: | + . .ci/appveyor-vpntest.ps1 + - uses: actions/upload-artifact@v4 + with: + name: Binaries-${{ matrix.platform.ARCHITECTURE }} + path: | + build/*.exe + build/*.pdb + build/*.se2 + - uses: actions/upload-artifact@v4 + with: + name: Installers-${{ matrix.platform.ARCHITECTURE }} + path: build/installers \ No newline at end of file From 4c1eeb717baf5772a84ac5b00a2c6e4fedbb2362 Mon Sep 17 00:00:00 2001 From: Ilia Shipitsin Date: Fri, 5 Apr 2024 22:15:35 +0200 Subject: [PATCH 3/3] CI: harden artifacts upload --- .github/workflows/windows.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 4b798b6b..66a32ccf 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -35,6 +35,7 @@ jobs: . .ci/appveyor-vpntest.ps1 - uses: actions/upload-artifact@v4 with: + if-no-files-found: error name: Binaries-${{ matrix.platform.ARCHITECTURE }} path: | build/*.exe @@ -42,5 +43,6 @@ jobs: build/*.se2 - uses: actions/upload-artifact@v4 with: + if-no-files-found: error name: Installers-${{ matrix.platform.ARCHITECTURE }} path: build/installers \ No newline at end of file