-
Notifications
You must be signed in to change notification settings - Fork 0
64 lines (61 loc) · 2.6 KB
/
Copy pathwc-continuous-integration.yml
File metadata and controls
64 lines (61 loc) · 2.6 KB
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
---
name: Continuous Integration
on:
workflow_call:
inputs:
target:
description: "Target"
required: true
type: string
configuration:
description: "Configuration"
required: true
type: string
permissions: {}
jobs:
build:
name: Build
runs-on: [ubuntu-latest]
container: ghcr.io/philips-software/amp-devcontainer-cpp:v6.0.2@sha256:36afaaa5ba4bc4e9bb471012db9733c26a210e315ddb33600f73bb9532b02a25 # 6.0.2
steps:
- uses: step-security/harden-runner@a90bcbc6539c36a85cdfeb73f7e2f433735f215b # v2.15.0
with:
disable-sudo-and-containers: true
egress-policy: audit
- uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
if: ${{ inputs.target == 'windows' }}
id: cache-winsdk
with:
path: /winsdk
key: cache-winsdk
- if: ${{ inputs.target == 'windows' && steps.cache-winsdk.outputs.cache-hit != 'true' }}
run: xwin --accept-license --sdk-version "10.0.26100" --crt-version "14.43.17.13" splat --preserve-ms-arch-notation --include-debug-libs && mv .xwin-cache/splat/ /winsdk
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- uses: hendrikmuhs/ccache-action@5ebbd400eff9e74630f759d94ddd7b6c26299639 # v1.2.20
with:
key: ${{ inputs.target}}-${{ inputs.configuration }}
- uses: lukka/run-cmake@af1be47fd7c933593f687731bc6fdbee024d3ff4 # v10.8
with:
configurePreset: "${{ inputs.target }}"
buildPreset: "${{ inputs.target }}-${{ inputs.configuration }}"
configurePresetAdditionalArgs: "['-DCMAKE_C_COMPILER_LAUNCHER=ccache', '-DCMAKE_CXX_COMPILER_LAUNCHER=ccache']"
- if: ${{ inputs.target == 'host' }}
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
name: HostInstall
path: ${{ github.workspace }}/build/host/Postmaster-*-Linux.tar.gz
- if: ${{ inputs.target == 'windows' }}
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
name: WindowsDiscovery
path: ${{ github.workspace }}/build/**/*.exe
retention-days: 8
- if: ${{ inputs.target == 'stm32f407' && inputs.configuration == 'RelWithDebInfo' }}
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
name: postmaster
path: build/stm32f407/Postmaster-*-Generic-ELF.tar.gz
if-no-files-found: error