-
Notifications
You must be signed in to change notification settings - Fork 301
145 lines (108 loc) · 3.17 KB
/
build.yml
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
name: build
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
# Separate build job for JavaScript
build-javascript:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup .NET
uses: actions/setup-dotnet@v1
with:
dotnet-version: '6.0.x'
- name: Setup Node.js environment
uses: actions/[email protected]
- name: Fable Tests - JavaScript
run: dotnet fsi build.fsx test-js
# Separate build job for TypeScript
build-typescript:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup .NET
uses: actions/setup-dotnet@v1
with:
dotnet-version: '6.0.x'
- name: Setup Node.js environment
uses: actions/[email protected]
- name: Fable Tests - TypeScript
run: dotnet fsi build.fsx test-ts
# - name: Fable Tests - TypeScript
# run: dotnet fsi build.fsx test-ts
# Separate build job for Integration
build-integration:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup .NET
uses: actions/setup-dotnet@v1
with:
dotnet-version: '6.0.x'
- name: Setup Node.js environment
uses: actions/[email protected]
- name: Fable Tests
run: dotnet fsi build.fsx test-integration
# Separate build job for Python since we use a test matrix (will run in parallell)
build-python:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.9, "3.10", 3.11]
steps:
- uses: actions/checkout@v2
- name: Setup .NET
uses: actions/setup-dotnet@v1
with:
dotnet-version: '6.0.x'
- name: Setup dotnet tools
run: dotnet tool restore
# - name: Check F# formatting (fantomas)
# run: dotnet fantomas src/Fable.Transforms/Python --check
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Fable Library - Python
run: dotnet fsi build.fsx library-py
- name: Install dependencies
run: |
pip install poetry
poetry install
- name: Fable Tests - Python
run: dotnet fsi build.fsx test-py
# Separate build job for Rust (will run in parallel)
build-rust:
runs-on: ubuntu-latest
strategy:
matrix:
test: ["default", "no_std", "threaded"]
steps:
- uses: actions/checkout@v2
- name: Setup .NET
uses: actions/setup-dotnet@v1
with:
dotnet-version: '6.0.x'
- name: Setup Node.js environment
uses: actions/[email protected]
- name: Setup Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
- name: Fable Tests - Rust
run: dotnet fsi build.fsx test-rust-${{ matrix.test }}
build-dart:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup .NET
uses: actions/setup-dotnet@v1
with:
dotnet-version: '6.0.x'
- name: Setup Dart SDK
uses: dart-lang/[email protected]
- name: Fable Tests - Dart
run: dotnet fsi build.fsx test-dart