Skip to content

[JsonGen] Fix restrict checking on r/w properties (#114) #311

[JsonGen] Fix restrict checking on r/w properties (#114)

[JsonGen] Fix restrict checking on r/w properties (#114) #311

name: Build ThunderTools on Windows
on:
workflow_dispatch:
push:
branches: ["master"]
pull_request:
branches: ["master"]
env:
bridge: Thunder\Source\Thunder\bridge.vcxproj
commander: ThunderNanoServices\Commander\Commander.vcxproj
devEnv: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\devenv.com
deviceInfo: ThunderNanoServicesRDK\DeviceInfo\DeviceInfo.vcxproj
DHCPServer: ThunderNanoServices\DHCPServer\DHCPServer.vcxproj
DIALServer: ThunderNanoServices\DIALServer\DIALServer.vcxproj
dictionary: ThunderNanoServices\Dictionary\Dictionary.vcxproj
JSONRPCPlugin: ThunderNanoServices\examples\JSONRPCPlugin\JSONRPCPlugin.vcxproj
locationSync: ThunderNanoServicesRDK\LocationSync\LocationSync.vcxproj
messenger: ThunderNanoServicesRDK\Messenger\Messenger.vcxproj
monitor: ThunderNanoServicesRDK\Monitor\Monitor.vcxproj
networkControl: ThunderNanoServices\NetworkControl\NetworkControl.vcxproj
openCDMi: ThunderNanoServicesRDK\OpenCDMi\OpenCDMi.vcxproj
outOfProcessPlugin: ThunderNanoServices\examples\OutOfProcessPlugin\OutOfProcessPlugin.vcxproj
remoteControl: ThunderNanoServices\RemoteControl\RemoteControl.vcxproj
securityAgent: ThunderNanoServicesRDK\SecurityAgent\SecurityAgent.vcxproj
solution: Thunder.sln
subsystemController: ThunderNanoServices\SubsystemController\SubsystemControl.vcxproj
svalbard: ThunderNanoServices\Svalbard\Svalbard.vcxproj
timeSync: ThunderNanoServices\TimeSync\TimeSync.vcxproj
webServer: ThunderNanoServices\WebServer\WebServer.vcxproj
jobs:
ThunderTools:
runs-on: windows-latest
strategy:
matrix:
type: [Debug, Release]
version: [64, 86]
# ----- Checkout & DependsOn regex -----
name: Build type - ${{matrix.type}}${{matrix.version}}
steps:
- name: Checkout ThunderOnWindows
uses: actions/checkout@v4
with:
path: ThunderOnWindows
repository: WebPlatformForEmbedded/ThunderOnWindows
# ----- Thunder -----
- name: Checkout Thunder - default
if: ${{ !contains(github.event.pull_request.body, '[DependsOn=Thunder:') }}
uses: actions/checkout@v4
with:
path: ThunderOnWindows/Thunder
repository: ${{github.repository_owner}}/Thunder
- name: Regex Thunder
if: contains(github.event.pull_request.body, '[DependsOn=Thunder:')
id: thunder
uses: AsasInnab/regex-action@v1
with:
regex_pattern: '(?<=\[DependsOn=Thunder:).*(?=\])'
regex_flags: 'gim'
search_string: ${{github.event.pull_request.body}}
- name: Checkout Thunder - ${{steps.thunder.outputs.first_match}}
if: contains(github.event.pull_request.body, '[DependsOn=Thunder:')
uses: actions/checkout@v4
with:
path: ThunderOnWindows/Thunder
repository: ${{github.repository_owner}}/Thunder
ref: ${{steps.thunder.outputs.first_match}}
# ----- ThunderTools -----
- name: Checkout ThunderTools - default
if: ${{ !contains(github.event.pull_request.body, '[DependsOn=ThunderTools:') }}
uses: actions/checkout@v4
with:
path: ThunderOnWindows/ThunderTools
repository: ${{github.repository_owner}}/ThunderTools
- name: Regex ThunderTools
if: contains(github.event.pull_request.body, '[DependsOn=ThunderTools:')
id: tools
uses: AsasInnab/regex-action@v1
with:
regex_pattern: '(?<=\[DependsOn=ThunderTools:).*(?=\])'
regex_flags: 'gim'
search_string: ${{github.event.pull_request.body}}
- name: Checkout ThunderTools - ${{steps.tools.outputs.first_match}}
if: contains(github.event.pull_request.body, '[DependsOn=ThunderTools:')
uses: actions/checkout@v4
with:
path: ThunderOnWindows/ThunderTools
repository: ${{github.repository_owner}}/ThunderTools
ref: ${{steps.tools.outputs.first_match}}
# ----- ThunderInterfaces -----
- name: Checkout ThunderInterfaces - default
if: ${{ !contains(github.event.pull_request.body, '[DependsOn=ThunderInterfaces:') }}
uses: actions/checkout@v4
with:
path: ThunderOnWindows/ThunderInterfaces
repository: ${{github.repository_owner}}/ThunderInterfaces
- name: Regex ThunderInterfaces
if: contains(github.event.pull_request.body, '[DependsOn=ThunderInterfaces:')
id: thunderinterfaces
uses: AsasInnab/regex-action@v1
with:
regex_pattern: '(?<=\[DependsOn=ThunderInterfaces:).*(?=\])'
regex_flags: 'gim'
search_string: ${{github.event.pull_request.body}}
- name: Checkout ThunderInterfaces - ${{steps.thunderinterfaces.outputs.first_match}}
if: contains(github.event.pull_request.body, '[DependsOn=ThunderInterfaces:')
uses: actions/checkout@v4
with:
path: ThunderOnWindows/ThunderInterfaces
repository: ${{github.repository_owner}}/ThunderInterfaces
ref: ${{steps.thunderinterfaces.outputs.first_match}}
# ----- Other checkouts -----
- name: Checkout ThunderClientLibraries
uses: actions/checkout@v4
with:
path: ThunderOnWindows/ThunderClientLibraries
repository: ${{github.repository_owner}}/ThunderClientLibraries
- name: Checkout ThunderNanoServices
uses: actions/checkout@v4
with:
path: ThunderOnWindows/ThunderNanoServices
repository: ${{github.repository_owner}}/ThunderNanoServices
- name: Checkout ThunderNanoServicesRDK
uses: actions/checkout@v4
with:
path: ThunderOnWindows/ThunderNanoServicesRDK
repository: WebPlatformForEmbedded/ThunderNanoServicesRDK
# ----- Install & Build -----
- name: Install jsonref
run: pip install jsonref
- name: Build ThunderTools
shell: cmd
run: >
cd ThunderOnWindows
&& "%devEnv%" "%solution%" /Build "${{matrix.type}}|x${{matrix.version}}" /Project "%bridge%"
&& "%devEnv%" "%solution%" /Build "${{matrix.type}}|x${{matrix.version}}" /Project "%commander%"
&& "%devEnv%" "%solution%" /Build "${{matrix.type}}|x${{matrix.version}}" /Project "%deviceInfo%"
&& "%devEnv%" "%solution%" /Build "${{matrix.type}}|x${{matrix.version}}" /Project "%DHCPServer%"
&& "%devEnv%" "%solution%" /Build "${{matrix.type}}|x${{matrix.version}}" /Project "%DIALServer%"
&& "%devEnv%" "%solution%" /Build "${{matrix.type}}|x${{matrix.version}}" /Project "%dictionary%"
&& "%devEnv%" "%solution%" /Build "${{matrix.type}}|x${{matrix.version}}" /Project "%JSONRPCPlugin%"
&& "%devEnv%" "%solution%" /Build "${{matrix.type}}|x${{matrix.version}}" /Project "%locationSync%"
&& "%devEnv%" "%solution%" /Build "${{matrix.type}}|x${{matrix.version}}" /Project "%messenger%"
&& "%devEnv%" "%solution%" /Build "${{matrix.type}}|x${{matrix.version}}" /Project "%monitor%"
&& "%devEnv%" "%solution%" /Build "${{matrix.type}}|x${{matrix.version}}" /Project "%networkControl%"
&& "%devEnv%" "%solution%" /Build "${{matrix.type}}|x${{matrix.version}}" /Project "%openCDMi%"
&& "%devEnv%" "%solution%" /Build "${{matrix.type}}|x${{matrix.version}}" /Project "%outOfProcessPlugin%"
&& "%devEnv%" "%solution%" /Build "${{matrix.type}}|x${{matrix.version}}" /Project "%remoteControl%"
&& "%devEnv%" "%solution%" /Build "${{matrix.type}}|x${{matrix.version}}" /Project "%securityAgent%"
&& "%devEnv%" "%solution%" /Build "${{matrix.type}}|x${{matrix.version}}" /Project "%subsystemController%"
&& "%devEnv%" "%solution%" /Build "${{matrix.type}}|x${{matrix.version}}" /Project "%svalbard%"
&& "%devEnv%" "%solution%" /Build "${{matrix.type}}|x${{matrix.version}}" /Project "%timeSync%"
&& "%devEnv%" "%solution%" /Build "${{matrix.type}}|x${{matrix.version}}" /Project "%webServer%"
# ----- Upload artifacts -----
- name: Tar files
run: tar -czvf ${{matrix.type}}${{matrix.version}}.tar.gz artifacts
- name: Upload
uses: actions/upload-artifact@v4
with:
name: ThunderTools-${{matrix.type}}${{matrix.version}}-artifact
path: ${{matrix.type}}${{matrix.version}}.tar.gz