diff --git a/.github/workflows/windows-build.yml b/.github/workflows/windows-build.yml new file mode 100644 index 0000000..be1b2a3 --- /dev/null +++ b/.github/workflows/windows-build.yml @@ -0,0 +1,73 @@ +name: windows-wg + +on: [push] + + +jobs: + + Build-Libs-WireGuard-Windows: + name: 'Build-Libs-WireGuard-Windows' + runs-on: windows-latest + if: | + contains(github.event.head_commit.message, '[all]') || + contains(github.event.head_commit.message, '[windows]') || + contains(github.event.head_commit.message, '[wireguard-tools]') + + steps: + + - name: 'Setup ccache' + uses: hendrikmuhs/ccache-action@v1.2 + + - name: 'Get sources' + uses: actions/checkout@v3 + + - name: 'Get Wireguard-Tools' + uses: actions/checkout@v3 + with: + repository: amnezia-vpn/amnezia-wg-tools + ref: new_fields_to_config + path: windows/wireguard-tools-windows + + - name: 'Build WireGuard Tools binary' + working-directory: windows/wireguard-tools-windows + run: | + cmd /c build.bat + mkdir build + move x64 build\x64 + move x86 build\x86 + move arm64 build\arm64 + + - name: Archive WG Windows + uses: actions/upload-artifact@v3 + with: + retention-days: 1 + name: windows-wireguard-tools + path: windows/wireguard-tools-windows/build + + github-release: + name: GitHub Release + needs: Build-Libs-WireGuard-Windows + runs-on: ubuntu-latest + if: startsWith(github.ref, 'refs/tags/') + + steps: + - name: Setup | Checkout + uses: actions/checkout@v2 + + - name: Setup | Artifacts + uses: actions/download-artifact@v2 + + - name: Setup | Checksums + run: for file in $(find ./ -name '*.dll' ); do openssl dgst -sha256 -r "$file" | awk '{print $1}' > "${file}.sha256"; done + + - name: Zip ALL + run: for file in *; do zip -r ${file%.*}.zip $file; done + + - name: Upload binaries to release + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: windows-wireguard-tools.zip + tag: ${{ github.ref }} + overwrite: true + file_glob: true