Skip to content

Commit 517a200

Browse files
committed
Merge branch 'master' into dev
2 parents 86c5614 + 32820df commit 517a200

184 files changed

Lines changed: 14777 additions & 8049 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.config/dotnet-tools.json

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,8 @@
1414
"reportgenerator"
1515
]
1616
},
17-
"fake-cli": {
18-
"version": "5.20.0",
19-
"commands": [
20-
"fake"
21-
]
22-
},
2317
"paket": {
24-
"version": "5.245.1",
18+
"version": "7.2.0",
2519
"commands": [
2620
"paket"
2721
]
@@ -33,10 +27,16 @@
3327
]
3428
},
3529
"fsharp-analyzers": {
36-
"version": "0.4.0",
30+
"version": "0.9.0",
3731
"commands": [
3832
"fsharp-analyzers"
3933
]
34+
},
35+
"fantomas-tool": {
36+
"version": "4.5.4",
37+
"commands": [
38+
"fantomas"
39+
]
4040
}
4141
}
42-
}
42+
}

.devcontainer/Dockerfile

Lines changed: 37 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,40 @@
1-
FROM fsharp:netcore
1+
FROM debian:buster-slim
2+
3+
4+
RUN apt-get update \
5+
&& apt-get install -y --no-install-recommends \
6+
ca-certificates \
7+
\
8+
# .NET Core dependencies
9+
libc6 \
10+
libgcc1 \
11+
libgssapi-krb5-2 \
12+
libicu63 \
13+
libssl1.1 \
14+
libstdc++6 \
15+
zlib1g \
16+
curl \
17+
git \
18+
procps \
19+
wget \
20+
&& rm -rf /var/lib/apt/lists/*
21+
22+
23+
ENV \
24+
# Enable detection of running in a container
25+
DOTNET_RUNNING_IN_CONTAINER=true \
26+
DOTNET_INSTALL_DIR=/usr/share/dotnet/ \
27+
DOTNET_ROOT=/usr/share/dotnet/
28+
29+
COPY ./.devcontainer/install-dotnets.sh global.json* .
30+
31+
RUN /bin/bash install-dotnets.sh
32+
33+
ENV PATH="$DOTNET_ROOT:${PATH}"
34+
RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet
35+
36+
RUN dotnet --info
237

338
# Copy endpoint specific user settings into container to specify
439
# .NET Core should be used as the runtime.
5-
COPY settings.vscode.json /root/.vscode-remote/data/Machine/settings.json
6-
7-
# Install git, process tools
8-
RUN apt-get update && apt-get -y install git procps
40+
COPY ./.devcontainer/settings.vscode.json /root/.vscode-remote/data/Machine/settings.json

.devcontainer/devcontainer.json

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
{
2-
"name": "MiniScaffold",
2+
"name": "dotnet",
3+
// Set the build context one level higher so we can grab metadata like global.json
4+
"context": "..",
35
"dockerFile": "Dockerfile",
4-
"appPort": [8080],
6+
"forwardPorts": [
7+
0
8+
],
59
"extensions": [
610
"ionide.ionide-fsharp",
7-
"ms-dotnettools.csharp",
8-
"editorconfig.editorconfig",
9-
"ionide.ionide-paket",
10-
"ionide.ionide-fake"
11+
"ms-dotnettools.csharp",
12+
"editorconfig.editorconfig",
13+
"ionide.ionide-paket",
14+
"ionide.ionide-fake"
1115
]
12-
}
16+
}

.devcontainer/install-dotnets.sh

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#!/bin/bash
2+
3+
# downloads installer script https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-install-script
4+
curl -SL --output dotnet-install.sh https://dot.net/v1/dotnet-install.sh
5+
6+
7+
# Attempt to install via global.json first
8+
FILE=global.json
9+
if test -f "$FILE"; then
10+
echo "installing dotnet via $FILE"
11+
/bin/bash dotnet-install.sh --verbose --jsonfile $FILE
12+
fi
13+
14+
15+
# Add additional versions if required
16+
DOTNET_VERSIONS=(
17+
# 'latest'
18+
'7.0.x'
19+
)
20+
for version in ${DOTNET_VERSIONS[@]}; do
21+
echo "installing dotnet $version"
22+
/bin/bash dotnet-install.sh --verbose --version $version
23+
done

.editorconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ root = true
1111
insert_final_newline = true
1212
indent_style = space
1313
indent_size = 4
14+
end_of_line = lf
1415

1516
[*.{fs,fsi,fsx,config}]
1617
charset = utf-8

.github/workflows/build-on-pr.yml

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
name: FAKE Build on PR
2+
3+
on:
4+
pull_request:
5+
workflow_dispatch:
6+
7+
jobs:
8+
win-build:
9+
name: Windows Build (No Tests)
10+
runs-on: windows-latest
11+
defaults:
12+
run:
13+
shell: cmd
14+
steps:
15+
- name: System Info
16+
run: systeminfo
17+
18+
- uses: actions/checkout@v2
19+
20+
- name: Setup .NET Core
21+
uses: actions/setup-dotnet@v1
22+
23+
- name: Build
24+
run: ./build.cmd DotnetBuild
25+
env:
26+
# Work around https://github.com/actions/setup-dotnet/issues/29
27+
DOTNET_ROOT: ${{ runner.tool_cache }}/dncs/${{ matrix.dotnet }}/x64
28+
CI: true
29+
30+
linux-build:
31+
name: Linux Build (No Tests)
32+
runs-on: ubuntu-latest
33+
steps:
34+
- name: System Info
35+
run: lscpu
36+
37+
- uses: actions/checkout@v1
38+
39+
- name: Setup .NET Core
40+
uses: actions/setup-dotnet@v1
41+
42+
- name: Build
43+
run: |
44+
chmod +x ./build.sh
45+
./build.sh DotnetBuild
46+
env:
47+
# Work around https://github.com/actions/setup-dotnet/issues/29
48+
DOTNET_ROOT: ${{ runner.tool_cache }}/dncs/${{ matrix.dotnet }}/x64
49+
CI: true
50+
51+
linux-test-self-hosted:
52+
name: Linux Self-Hosted Test
53+
runs-on: self-hosted
54+
steps:
55+
- name: System Info
56+
run: lscpu
57+
58+
- uses: actions/checkout@v1
59+
60+
- name: OpenCL Info
61+
run: clinfo
62+
63+
- name: Build And Test
64+
run: |
65+
chmod +x ./build.sh
66+
./build.sh
67+
env:
68+
# Work around https://github.com/actions/setup-dotnet/issues/29
69+
DOTNET_ROOT: ${{ runner.tool_cache }}/dncs/${{ matrix.dotnet }}/x64
70+
CI: true
Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
name: FAKE Build on Push
2+
3+
on:
4+
push:
5+
workflow_dispatch:
6+
7+
jobs:
8+
win-build:
9+
name: Windows Build (No Tests)
10+
runs-on: windows-latest
11+
defaults:
12+
run:
13+
shell: cmd
14+
steps:
15+
- name: System Info
16+
run: systeminfo
17+
18+
- uses: actions/checkout@v2
19+
20+
- name: Setup .NET Core
21+
uses: actions/setup-dotnet@v1
22+
23+
- name: Build
24+
run: ./build.cmd DotnetBuild
25+
env:
26+
# Work around https://github.com/actions/setup-dotnet/issues/29
27+
DOTNET_ROOT: ${{ runner.tool_cache }}/dncs/${{ matrix.dotnet }}/x64
28+
CI: true
29+
30+
win-test:
31+
name: Windows Build And Test
32+
if: github.repository_owner != 'YaccConstructor'
33+
runs-on: windows-latest
34+
defaults:
35+
run:
36+
shell: cmd
37+
steps:
38+
- name: System Info
39+
run: systeminfo
40+
41+
- uses: actions/checkout@v2
42+
43+
- name: Setup .NET Core
44+
uses: actions/setup-dotnet@v1
45+
46+
- name: Install OpenCL
47+
run: |
48+
set NUGETDIR=C:\NUGET
49+
nuget install opencl-nug -Version 0.777.77 -OutputDirectory %NUGETDIR%
50+
dir %NUGETDIR%\opencl-nug.0.777.77\build\native\
51+
set OCL_ROOT=%NUGETDIR%\opencl-nug.0.777.77\build\native
52+
# Install OpenCL Runtime
53+
choco install opencl-intel-cpu-runtime
54+
# - name: Download "clinfo.exe"
55+
# uses: carlosperate/download-file-action@v1.0.3
56+
# with:
57+
# file-url: https://ci.appveyor.com/api/projects/oblomov/clinfo/artifacts/clinfo.exe?job=platform:+x64
58+
# file-name: clinfo.exe
59+
#
60+
# - name: OpenCL Info
61+
# run: clinfo.exe
62+
63+
- name: Build And Test
64+
run: ./build.cmd
65+
env:
66+
# Work around https://github.com/actions/setup-dotnet/issues/29
67+
DOTNET_ROOT: ${{ runner.tool_cache }}/dncs/${{ matrix.dotnet }}/x64
68+
CI: true
69+
70+
linux-build:
71+
name: Linux Build (No Tests)
72+
runs-on: ubuntu-latest
73+
steps:
74+
- name: System Info
75+
run: lscpu
76+
77+
- uses: actions/checkout@v1
78+
79+
- name: Setup .NET
80+
uses: actions/setup-dotnet@v1
81+
82+
- name: Build
83+
run: |
84+
chmod +x ./build.sh
85+
./build.sh DotnetBuild
86+
env:
87+
# Work around https://github.com/actions/setup-dotnet/issues/29
88+
DOTNET_ROOT: ${{ runner.tool_cache }}/dncs/${{ matrix.dotnet }}/x64
89+
CI: true
90+
91+
linux-test:
92+
name: Linux Build And Test
93+
if: github.repository_owner != 'YaccConstructor'
94+
runs-on: ubuntu-latest
95+
steps:
96+
- name: System Info
97+
run: lscpu
98+
99+
- uses: actions/checkout@v1
100+
101+
- name: Setup .NET Core
102+
uses: actions/setup-dotnet@v1
103+
104+
- name: Install OpenCL
105+
run: |
106+
chmod +x ./.github/workflows/install-ubuntu-dependencies.sh
107+
sudo ./.github/workflows/install-ubuntu-dependencies.sh
108+
- name: Download "clinfo.exe"
109+
run: sudo apt install clinfo
110+
111+
- name: OpenCL Info
112+
run: clinfo
113+
114+
- name: Build And Test
115+
run: |
116+
chmod +x ./build.sh
117+
./build.sh
118+
env:
119+
# Work around https://github.com/actions/setup-dotnet/issues/29
120+
DOTNET_ROOT: ${{ runner.tool_cache }}/dncs/${{ matrix.dotnet }}/x64
121+
CI: true
122+
123+
linux-test-self-hosted:
124+
name: Linux Self-Hosted Test
125+
if: github.repository_owner == 'YaccConstructor'
126+
runs-on: self-hosted
127+
steps:
128+
- name: System Info
129+
run: lscpu
130+
131+
- uses: actions/checkout@v1
132+
133+
- name: OpenCL Info
134+
run: clinfo
135+
136+
- name: Build And Test
137+
run: |
138+
chmod +x ./build.sh
139+
./build.sh
140+
env:
141+
# Work around https://github.com/actions/setup-dotnet/issues/29
142+
DOTNET_ROOT: ${{ runner.tool_cache }}/dncs/${{ matrix.dotnet }}/x64
143+
CI: true

0 commit comments

Comments
 (0)