-
Notifications
You must be signed in to change notification settings - Fork 1
129 lines (129 loc) · 4.29 KB
/
ci.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
name: CI
on:
push:
branches:
- master
- release-*
pull_request:
workflow_dispatch:
env:
DOTNET_NOLOGO: true
jobs:
build:
name: ${{ matrix.os-name }}-${{ matrix.engines }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ windows-2022, ubuntu-22.04 ]
engines: [
AzureStorage,
Oracle,
RabbitMQ,
RavenDB4,
SqlServer,
AzureStorage-Oracle,
AzureStorage-RabbitMQ,
AzureStorage-RavenDB4,
AzureStorage-SqlServer,
Oracle-RabbitMQ,
RabbitMQ-RavenDB4,
RabbitMQ-SqlServer
]
include:
- engines: AzureStorage
upload-packages: true
# Add os-name alias for job name
- os: windows-2022
os-name: Windows
- os: ubuntu-22.04
os-name: Linux
# Additional permutations
- os: windows-2022
os-name: Windows
engines: RabbitMQ-RavenDB3
- os: windows-2022
os-name: Windows
engines: RavenDB3
fail-fast: false
steps:
- name: Check for secrets
env:
SECRETS_AVAILABLE: ${{ secrets.SECRETS_AVAILABLE }}
shell: pwsh
run: exit $(If ($env:SECRETS_AVAILABLE -eq 'true') { 0 } Else { 1 })
- name: Checkout
uses: actions/[email protected]
with:
fetch-depth: 0
- name: Setup .NET SDK
uses: actions/[email protected]
with:
dotnet-version: |
7.0.x
6.0.x
- name: Build
run: dotnet build src --configuration Release
- name: Upload packages
if: matrix.upload-packages && runner.os == 'Windows'
uses: actions/[email protected]
with:
name: NuGet packages
path: nugets/
retention-days: 7
- name: Azure login
uses: azure/[email protected]
with:
creds: ${{ secrets.AZURE_ACI_CREDENTIALS }}
- name: Setup Azure Storage
if: contains(matrix.engines, 'AzureStorage')
uses: Particular/[email protected]
with:
connection-string-name: AzureStorageConnectionString
azure-credentials: ${{ secrets.AZURE_ACI_CREDENTIALS }}
tag: TimeoutMigrationTool
- name: Setup Oracle
if: contains(matrix.engines, 'Oracle')
uses: Particular/[email protected]
with:
connection-string-name: OracleConnectionString
tag: TimeoutMigrationTool
registry-username: ${{ secrets.DOCKERHUB_USERNAME }}
registry-password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Setup RabbitMQ
if: contains(matrix.engines, 'RabbitMQ')
uses: Particular/[email protected]
with:
connection-string-name: RabbitMqConnectionString
host-env-var-name: RabbitMqHost
tag: TimeoutMigrationTool
registry-username: ${{ secrets.DOCKERHUB_USERNAME }}
registry-password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Setup RavenDB3
if: contains(matrix.engines, 'RavenDB3')
shell: pwsh
run: |
choco install ravendb3 --version 3.5.3 -y
echo "Raven3Url=http://localhost:8080" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf-8 -Append
- name: Setup RavenDB4
if: contains(matrix.engines, 'RavenDB4')
id: setup-ravendb
uses: Particular/[email protected]
with:
single-connection-string-name: Raven4Url
ravendb-license: ${{ secrets.RAVENDB_LICENSE }}
ravendb-mode: Single
ravendb-version: 4.2-ubuntu-latest
tag: TimeoutMigrationTool
registry-username: ${{ secrets.DOCKERHUB_USERNAME }}
registry-password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Install SQL Server
if: contains(matrix.engines, 'SqlServer')
uses: Particular/[email protected]
with:
connection-string-env-var: SqlServerConnectionString
catalog: nservicebus
extra-params: "Encrypt=False;"
- name: Run tests
uses: Particular/[email protected]
with:
report-warnings: ${{ secrets.TESTS_REPORT_WARNINGS }}