--- /dev/null
+set crypto=%1
+set builddir=%crypto%
+
+echo configure build directory
+meson setup %builddir% -Dbuildtype=release -Dcrypto=%crypto% || exit 1
+
+echo build project
+meson compile -C %builddir% || exit 1
--- /dev/null
+set builddir=%1
+set data=%builddir%\test-data
+set tinc=%builddir%\src\tinc
+set tincd=%tinc%d
+
+mkdir %data% || exit 1
+
+echo can tinc run at all?
+%tinc% --version || exit 1
+
+echo try to initialize a node
+%tinc% -c %data% -b init foo || exit 1
+
+echo try to generate EC keys
+%tinc% -c %data% -b generate-ed25519-keys || exit 1
+
+echo can tincd run?
+%tincd% --version || exit 1
+
+echo bail out if we're missing support for the legacy protocol
+%tinc% --version | findstr legacy_protocol || exit 0
+
+echo try to generate RSA keys
+%tinc% -c %data% -b generate-keys || exit 1
runs-on: ubuntu-latest
needs:
- linux
- - windows
+ - mingw
steps:
- name: Create artifact directory
path: /tmp/logs/tests.*.tar.gz
if: always()
- windows:
+ mingw:
runs-on: windows-latest
timeout-minutes: 30
name: tests_windows
path: /tmp/logs/tests.*.tar.gz
if: always()
+
+ msvc:
+ runs-on: windows-latest
+ timeout-minutes: 30
+
+ strategy:
+ fail-fast: false
+ matrix:
+ arch:
+ - amd64
+ - amd64_x86
+
+ steps:
+ - name: Install meson
+ run: pip3 install meson
+
+ - name: Checkout code
+ uses: actions/checkout@v1
+
+ - name: Activate dev environment
+ uses: ilammy/msvc-dev-cmd@v1
+ with:
+ arch: ${{ matrix.arch }}
+
+ - name: Build (nolegacy)
+ run: .ci\windows\build.cmd nolegacy
+
+ - name: Test (nolegacy)
+ run: .ci\windows\test.cmd nolegacy
+ if: always()
+
+ - name: Build (OpenSSL)
+ run: .ci\windows\build.cmd openssl
+ if: always()
+
+ - name: Test (OpenSSL)
+ run: .ci\windows\test.cmd openssl
+ if: always()