[JsonGen] Support for case convention switching #366
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |
JSONRPCClient: ThunderNanoServices\examples\JSONRPC\Client\JSONRPCClient.vcxproj | |
JSONRPCPlugin: ThunderNanoServices\examples\JSONRPC\Plugin\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 "%JSONRPCClient%" | |
&& "%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 |