forked from abarichello/godot-ci
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile.dotnet
53 lines (45 loc) · 2.28 KB
/
Dockerfile.dotnet
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
FROM mcr.microsoft.com/dotnet/sdk:8.0
# There are some directories called mono but Godot 4.x suggest using .net runtime instead.
USER root
ENV DEBIAN_FRONTEND=noninteractive
ARG GODOT_VERSION="4.2.2"
ARG RELEASE_NAME="stable"
ARG GODOT_TEST_ARGS="--headless-quit"
ARG GODOT_PLATFORM="linux_x86_64"
ARG GODOT_PLATFORM_FILE_NAME="linux.x86_64"
RUN apt-get update && \
apt-get install -y --no-install-recommends \
ca-certificates \
git \
git-lfs \
unzip \
wget \
zip \
curl \
libfontconfig \
rsync && \
rm -rf /var/lib/apt/lists/*
# Itch.io helper
RUN mkdir -p /opt/butler/bin \
&& cd /opt/butler/bin \
&& wget -q -O butler.zip https://broth.itch.ovh/butler/linux-amd64/LATEST/archive/default \
&& unzip butler.zip \
&& chmod +x butler
ENV PATH="${PATH}:/opt/butler/bin/"
RUN butler -V
# Download Godot and export templates
# This version removes the ios and android templates because they are marked as experimental for C# support or not functional at all
RUN wget -q https://github.com/godotengine/godot-builds/releases/download/${GODOT_VERSION}-${RELEASE_NAME}/Godot_v${GODOT_VERSION}-${RELEASE_NAME}_mono_${GODOT_PLATFORM}.zip \
&& wget -q https://github.com/godotengine/godot-builds/releases/download/${GODOT_VERSION}-${RELEASE_NAME}/Godot_v${GODOT_VERSION}-${RELEASE_NAME}_mono_export_templates.tpz \
&& mkdir -p ~/.cache \
&& mkdir -p ~/.config/godot \
&& mkdir -p ~/.local/share/godot/export_templates/${GODOT_VERSION}.${RELEASE_NAME}.mono \
&& unzip Godot_v${GODOT_VERSION}-${RELEASE_NAME}_mono_${GODOT_PLATFORM}.zip \
&& mv Godot_v${GODOT_VERSION}-${RELEASE_NAME}_mono_${GODOT_PLATFORM}/Godot_v${GODOT_VERSION}-${RELEASE_NAME}_mono_${GODOT_PLATFORM_FILE_NAME} /usr/local/bin/godot \
&& mv Godot_v${GODOT_VERSION}-${RELEASE_NAME}_mono_${GODOT_PLATFORM}/GodotSharp /usr/local/bin/GodotSharp \
&& unzip Godot_v${GODOT_VERSION}-${RELEASE_NAME}_mono_export_templates.tpz \
&& rm templates/android* \
&& rm templates/ios* \
&& mv templates/* ~/.local/share/godot/export_templates/${GODOT_VERSION}.${RELEASE_NAME}.mono \
&& rm -f Godot_v${GODOT_VERSION}-${RELEASE_NAME}_mono_export_templates.tpz Godot_v${GODOT_VERSION}-${RELEASE_NAME}_mono_${GODOT_PLATFORM}.zip
RUN godot -v -e --quit --headless ${GODOT_TEST_ARGS}