summaryrefslogtreecommitdiff
path: root/.github/workflows/windows.yml
blob: de7441cdbe3263d2cc50d360d273a5d6e698b7af (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
132
133
134
135
136
name: windows

on:
  push:
  pull_request:
  schedule:
    - cron: '0 1 * * SUN'

jobs:
  build:
    strategy:
      matrix:
        include:
          - name: VS2017WChar
            vmimage: windows-2016
            mpctype: vs2017
            BuildPlatform: x64
            BuildConfiguration: Debug
            vcpkgarch: x64-windows
            vcpkglibdir: debug/lib
            vcpkgpackages: 'openssl xerces-c[xmlch-wchar]'
            OptionalFeatures: uses_wchar=1
          - name: VS2017Debug64
            vmimage: windows-2016
            mpctype: vs2017
            BuildPlatform: x64
            BuildConfiguration: Debug
            vcpkgarch: x64-windows
            vcpkglibdir: debug/lib
            vcpkgpackages: openssl xerces-c
          - name: VS2017Release64
            vmimage: windows-2016
            mpctype: vs2017
            BuildPlatform: x64
            BuildConfiguration: Release
            vcpkgarch: x64-windows
            vcpkglibdir: lib
            vcpkgpackages: openssl xerces-c
          - name: VS2019WChar
            vmimage: windows-2019
            mpctype: vs2019
            BuildPlatform: x64
            BuildConfiguration: Debug
            vcpkgarch: x64-windows
            vcpkglibdir: debug/lib
            vcpkgpackages: 'openssl xerces-c[xmlch-wchar]'
            OptionalFeatures: uses_wchar=1
          - name: VS2019Debug64
            vmimage: windows-2019
            mpctype: vs2019
            BuildPlatform: x64
            BuildConfiguration: Debug
            vcpkgarch: x64-windows
            vcpkglibdir: debug/lib
            vcpkgpackages: openssl xerces-c
          - name: VS2019Release64
            vmimage: windows-2019
            mpctype: vs2019
            BuildPlatform: x64
            BuildConfiguration: Release
            vcpkgarch: x64-windows
            vcpkglibdir: lib
            vcpkgpackages: openssl xerces-c
          - name: VS2019Debug32
            vmimage: windows-2019
            mpctype: vs2019
            BuildPlatform: Win32
            BuildConfiguration: Debug
            vcpkgarch: x86-windows
            vcpkglibdir: debug/lib
            vcpkgpackages: openssl xerces-c
          - name: VS2019Release32
            vmimage: windows-2019
            mpctype: vs2019
            BuildPlatform: Win32
            BuildConfiguration: Release
            vcpkgarch: x86-windows
            vcpkglibdir: lib
            vcpkgpackages: openssl xerces-c
    runs-on: ${{ matrix.vmimage }}
    name: ${{ matrix.name }}
    env:
      ACE_ROOT: ${{ github.workspace }}/ACE
      TAO_ROOT: ${{ github.workspace }}/TAO
      MPC_ROOT: ${{ github.workspace }}/MPC
      VCPKG_ROOT: ${{ github.workspace }}/vcpkg
      XERCESC_INCDIR: ${{ github.workspace }}/vcpkg/installed/${{ matrix.vcpkgarch }}/include
      XERCESC_LIBDIR: ${{ github.workspace }}/vcpkg/installed/${{ matrix.vcpkgarch }}/${{ matrix.vcpkglibdir }}
      SSL_INCDIR: ${{ github.workspace }}/vcpkg/installed/${{ matrix.vcpkgarch }}/include
      SSL_LIBDIR: ${{ github.workspace }}/vcpkg/installed/${{ matrix.vcpkgarch }}/${{ matrix.vcpkglibdir }}
    steps:
    - name: checkout ACE/TAO
      uses: actions/checkout@v2
    - name: checkout MPC
      uses: actions/checkout@v2
      with:
        repository: DOCGroup/MPC
        path: ${{ env.MPC_ROOT }}
    - name: Install vcpkg
      uses: lukka/run-vcpkg@v5
      with:
        vcpkgGitCommitId: 0bf3923f9fab4001c00f0f429682a0853b5749e0
        vcpkgArguments: --recurse ${{ matrix.vcpkgpackages }}
        vcpkgTriplet: ${{ matrix.vcpkgarch }}
        appendedCacheKey: ${{ matrix.name }}
    - name: create $ACE_ROOT/ace/config.h
      run: |
        '#include "ace/config-win32.h"' > ${env:ACE_ROOT}/ace/config.h
      shell: pwsh
    - name: create $ACE_ROOT/bin/MakeProjectCreator/config/default.features
      run: |
        echo "ipv6=1" | out-file -encoding ASCII ${env:ACE_ROOT}/bin/MakeProjectCreator/config/default.features
        echo "xerces3=1" | out-file -encoding ASCII ${env:ACE_ROOT}/bin/MakeProjectCreator/config/default.features
        echo "ssl=1" | out-file -append -encoding ASCII ${env:ACE_ROOT}/bin/MakeProjectCreator/config/default.features
        echo "openssl11=1" | out-file -append -encoding ASCII ${env:ACE_ROOT}/bin/MakeProjectCreator/config/default.features
        echo "versioned_namespace=1" | out-file -append -encoding ASCII ${env:ACE_ROOT}/bin/MakeProjectCreator/config/default.features
      shell: pwsh
    - name: Add optional features ${{ matrix.OptionalFeatures }}
      run: |
        echo "${{ matrix.OptionalFeatures }}" | out-file -append -encoding ASCII ${env:ACE_ROOT}/bin/MakeProjectCreator/config/default.features
      shell: pwsh
      if: matrix.OptionalFeatures != ''
    - name: Run mwc.pl on $(TAO_ROOT)/TAO_ACE.mwc
      run: |
        perl ${env:ACE_ROOT}/bin/mwc.pl -type ${{ matrix.mpctype }} ${env:TAO_ROOT}/TAO_ACE.mwc -workers 4
      shell: pwsh
    - name: Run mwc.pl on $(ACE_ROOT)/tests/tests.mwc
      run: |
        perl ${env:ACE_ROOT}/bin/mwc.pl -type ${{ matrix.mpctype }} ${env:ACE_ROOT}/tests/tests.mwc -workers 4
      shell: pwsh
    - name: Setup msbuild
      uses: microsoft/setup-msbuild@v1
    - name: Build solution TAO/TAO_ACE.sln
      run: msbuild -maxcpucount -p:Platform=${{ matrix.BuildPlatform }} -p:Configuration=${{ matrix.BuildConfiguration }} TAO/TAO_ACE.sln
    - name: Build solution ACE/tests/tests.sln
      run: msbuild -maxcpucount -p:Platform=${{ matrix.BuildPlatform }} -p:Configuration=${{ matrix.BuildConfiguration }} ACE/tests/tests.sln