Skip to content

[Actions] New workflow runs in a PR should cancel any in-progress ones #792

[Actions] New workflow runs in a PR should cancel any in-progress ones

[Actions] New workflow runs in a PR should cancel any in-progress ones #792

name: Build ThunderInterfaces on Windows
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
on:
workflow_dispatch:
push:
branches: ["master"]
pull_request:
branches: ["master"]
env:
definitions: ThunderInterfaces\definitions\definitions.vcxproj
interfaces: ThunderInterfaces\interfaces\Interfaces.vcxproj
solution: Thunder.sln
jobs:
ThunderInterfaces:
runs-on: windows-latest
strategy:
matrix:
type: [Debug, Release]
version: [64, 86]
name: Build type - ${{matrix.type}}${{matrix.version}}
steps:
# ----- Checkout -----
- name: Checkout ThunderOnWindows
uses: actions/checkout@v5
with:
path: ThunderOnWindows
repository: WebPlatformForEmbedded/ThunderOnWindows
- name: Checkout Thunder
uses: actions/checkout@v5
with:
path: ThunderOnWindows/Thunder
repository: ${{github.repository_owner}}/Thunder
- name: Checkout ThunderTools
uses: actions/checkout@v5
with:
path: ThunderOnWindows/ThunderTools
repository: ${{github.repository_owner}}/ThunderTools
- name: Checkout ThunderClientLibraries
uses: actions/checkout@v5
with:
path: ThunderOnWindows/ThunderClientLibraries
repository: ${{github.repository_owner}}/ThunderClientLibraries
- name: Checkout ThunderInterfaces
uses: actions/checkout@v5
with:
path: ThunderOnWindows/ThunderInterfaces
repository: ${{github.repository_owner}}/ThunderInterfaces
- name: Checkout ThunderNanoServices
uses: actions/checkout@v5
with:
path: ThunderOnWindows/ThunderNanoServices
repository: ${{github.repository_owner}}/ThunderNanoServices
- name: Checkout ThunderNanoServicesRDK
uses: actions/checkout@v5
with:
path: ThunderOnWindows/ThunderNanoServicesRDK
repository: WebPlatformForEmbedded/ThunderNanoServicesRDK
# ----- Building -----
- name: Install jsonref
run: pip install jsonref
- name: Build ThunderInterfaces
shell: cmd
run: |
for /f "usebackq tokens=*" %%i in (`"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -latest -products * -requires Microsoft.VisualStudio.Component.CoreEditor -property productPath`) do set "VS_PATH=%%i"
if not defined VS_PATH (echo ERROR: Visual Studio not found && exit /b 1)
set "devEnv=%VS_PATH:.exe=.com%"
cd ThunderOnWindows
for %%P in ("%definitions%" "%interfaces%") do (
"%devEnv%" /Build "${{matrix.type}}|x${{matrix.version}}" /Project %%P "%solution%"
if errorlevel 1 exit /b 1
)
# ----- Articats -----
- name: Tar files
run: tar -czvf ${{matrix.type}}${{matrix.version}}.tar.gz artifacts
- name: Upload
uses: actions/upload-artifact@v4
with:
name: ThunderInterfaces-${{matrix.type}}${{matrix.version}}-artifact
path: ${{matrix.type}}${{matrix.version}}.tar.gz