-
Notifications
You must be signed in to change notification settings - Fork 9
105 lines (86 loc) · 2.51 KB
/
testing.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
# Main testing workflow for Handy-Httpd.
# All testing is done in a single workflow (and job) to reduce load on the
# runners, since we only need to checkout and setup DLang once.
name: Testing
on:
push:
branches: ["*"]
paths:
- source/**
- examples/**
- integration-tests/**
- .github/workflows/testing.yml
pull_request:
branches: ["main"]
permissions:
contents: read
jobs:
unit-tests:
name: Unit Tests
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]
compiler: [dmd-latest, ldc-1.31.0, ldc-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Setup DLang
uses: dlang-community/setup-dlang@v1
with:
compiler: ${{ matrix.compiler }}
- name: Build handy-httpd
run: dub -q build
- name: Run Unit Tests
run: dub -q test
integration-tests:
name: Integration Tests
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]
compiler: [dmd-latest, ldc-1.31.0, ldc-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Setup DLang
uses: dlang-community/setup-dlang@v1
with:
compiler: ${{ matrix.compiler }}
- name: Setup Java
uses: actions/setup-java@v3
with:
distribution: "temurin"
java-version: "17"
- name: Speed Test
working-directory: integration-tests/speed-test
run: dub -q run
- name: File Test
working-directory: integration-tests/file-test
run: java Tests.java
- name: Multipart Test
working-directory: integration-tests/multipart
run: dub run --single server.d
examples:
name: Examples
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]
compiler: [dmd-latest, ldc-1.31.0, ldc-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Setup DLang
uses: dlang-community/setup-dlang@v1
with:
compiler: ${{ matrix.compiler }}
- name: Test Examples
working-directory: examples
run: rdmd runner.d test
- name: Clean Examples
working-directory: examples
run: rdmd runner.d clean