summaryrefslogtreecommitdiff
path: root/.github/workflows/test-win.yml
blob: 09fde6255848e0cc44ffc32ff7c5640144c08c1b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
name: Test & check build

on: [ push, pull_request ]

jobs:
  test-go:
    name: Test Go
    runs-on: windows-latest

    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-go@v2
        with:
          go-version: ^1.15
      - run: make test-go

  build-lib:
    name: Build shared Go library
    runs-on: windows-latest

    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-go@v2
        with:
          go-version: ^1.15
      - run: make
      - uses: actions/upload-artifact@v2
        with:
          name: shared-lib
          path: exports/lib/
          retention-days: 1

  test-csharp:
    name: Test C# wrapper
    needs: build-lib
    runs-on: windows-latest

    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-dotnet@v1
        with:
          dotnet-version: 5.0.x

      - uses: actions/download-artifact@v2
        with:
          name: shared-lib
          path: exports/lib/
      - name: Test
        run: make -C wrappers/csharp test
      - name: Build .nupkg
        run: make -C wrappers/csharp pack

  test-java-android:
    name: Test Android (Java) wrapper
    needs: build-lib
    runs-on: windows-latest

    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-java@v2
        with:
          distribution: temurin
          java-version: 11
      - uses: android-actions/setup-android@v2

      - uses: actions/download-artifact@v2
        with:
          name: shared-lib
          path: exports/lib/
      - name: Test
        run: make -C wrappers/java-android test NO_DAEMON=1 NO_EMULATOR=1
      - name: Build .aar
        run: make -C wrappers/java-android pack NO_DAEMON=1

  test-php:
    name: Test PHP wrapper
    needs: build-lib
    runs-on: windows-latest

    steps:
      - uses: actions/checkout@v2
      # Note: PHP is already included: https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-Readme.md

      - uses: actions/download-artifact@v2
        with:
          name: shared-lib
          path: exports/lib/
      - name: Test
        run: make -C wrappers/php test

  test-python:
    name: Test Python wrapper
    needs: build-lib
    runs-on: windows-latest

    steps:
      - uses: actions/checkout@v2
      # Note: Python 3 is already included

      - uses: actions/download-artifact@v2
        with:
          name: shared-lib
          path: exports/lib/
      - name: Test
        run: make -C wrappers/python test
      - name: Build .whl
        run: make -C wrappers/python pack

  test-swift:
    name: Test Swift wrapper
    needs: build-lib
    runs-on: windows-latest

    steps:
      - uses: actions/checkout@v2
      - name: Set up Visual Studio shell
        uses: egor-tensin/vs-shell@v2
        with:
          arch: x64
      - name: Generate import library
        run: exports/generate_lib.ps1 -DllPath (Get-ChildItem -Recurse exports/lib *.dll)
      - uses: rinsuki/setup-swift-windows
        with:
          version: 5.5

      - uses: actions/download-artifact@v2
        with:
          name: shared-lib
          path: exports/lib/
      - name: Test
        run: make -C wrappers/swift test