-
Notifications
You must be signed in to change notification settings - Fork 0
127 lines (107 loc) · 3.12 KB
/
Copy pathci.yml
File metadata and controls
127 lines (107 loc) · 3.12 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
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
name: CI
on:
push:
branches:
- main
pull_request:
workflow_dispatch:
jobs:
build:
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- name: linux-gcc
os: ubuntu-22.04
cxx: g++
- name: windows-msvc
os: windows-2022
cxx: cl
- name: windows-mingw
os: windows-2022
cxx: g++
- name: macos-clang
os: macos-14
cxx: clang++
steps:
- uses: actions/checkout@v4
- name: Install Ninja
if: matrix.name != 'windows-msvc'
uses: seanmiddleditch/gha-setup-ninja@v5
- name: Configure
if: matrix.name != 'windows-msvc'
run: cmake -B build -G Ninja -DCMAKE_CXX_COMPILER=${{ matrix.cxx }} -DCMAKE_BUILD_TYPE=Release
- name: Configure (MSVC)
if: matrix.name == 'windows-msvc'
run: cmake -B build -G "Visual Studio 17 2022"
- name: Build
run: cmake --build build --config Release
dotnet:
name: dotnet-${{ matrix.name }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- name: linux
os: ubuntu-22.04
- name: windows
os: windows-2022
- name: macos
os: macos-14
steps:
- uses: actions/checkout@v4
- name: Install .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x
- name: Build the C# API
run: dotnet build dotnet/Falcon.PluginAPI/Falcon.PluginAPI.csproj -c Release
- name: Build the example plugin
run: dotnet build examples/dotnet/HelloPlugin/HelloPlugin.csproj -c Release
- name: Pack the C# API
if: matrix.name == 'linux'
run: dotnet pack dotnet/Falcon.PluginAPI/Falcon.PluginAPI.csproj -c Release -o nupkg
- name: Upload the package
if: matrix.name == 'linux'
uses: actions/upload-artifact@v4
with:
name: Falcon.PluginAPI-nupkg
path: nupkg/*.nupkg
if-no-files-found: error
java:
name: java-${{ matrix.name }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- name: linux
os: ubuntu-22.04
- name: windows
os: windows-2022
- name: macos
os: macos-14
steps:
- uses: actions/checkout@v4
- name: Install Java
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 22
cache: maven
- name: Build the Java API
run: mvn -B -f java/pom.xml install
- name: Build the example plugin
run: mvn -B -f examples/java/HelloPlugin/pom.xml package
- name: Upload the jars
uses: actions/upload-artifact@v4
with:
name: java-${{ matrix.name }}
path: |
java/target/falcon-plugin-api-*.jar
examples/java/HelloPlugin/target/HelloPlugin.jar
examples/java/HelloPlugin/plugin.json
if-no-files-found: error