forked from Conjure-Tools/unity-runner
Merge branch 'main' of bastion:unity/unity-runner into main
This commit is contained in:
commit
9c1e04e52a
@ -1,9 +1,12 @@
|
|||||||
name: 🤓 Individual Runners
|
name: 🤓 Individual Runners
|
||||||
|
|
||||||
on:
|
on:
|
||||||
# push:
|
push:
|
||||||
# branches: [main]
|
branches: [main]
|
||||||
# paths: ['versions.txt']
|
paths:
|
||||||
|
- versions.txt
|
||||||
|
- dockerfiles/runner.dockerfile
|
||||||
|
- .gitea/workflows/create-image.yaml
|
||||||
|
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
inputs:
|
inputs:
|
||||||
@ -32,8 +35,11 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
DOCKER_REGISTRY: docker.lakes.house/
|
DOCKER_REGISTRY: docker.lakes.house/
|
||||||
UNITY_VERSION: ${{ github.event.inputs.unity_version }}
|
UNITY_VERSION: ${{ github.event.inputs.unity_version }}
|
||||||
|
GAMECI_OS: ubuntu
|
||||||
|
GAMECI_VERSION: 3
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
|
max-parallel: 2
|
||||||
matrix:
|
matrix:
|
||||||
platform:
|
platform:
|
||||||
- webgl
|
- webgl
|
||||||
@ -48,10 +54,11 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
|
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Login to Docker Registry
|
- name: Login to Docker Registry
|
||||||
uses: docker/login-action@v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
registry: ${{ env.DOCKER_REGISTRY }} # usual credentials for bastion.local
|
registry: ${{ env.DOCKER_REGISTRY }}
|
||||||
username: ${{ secrets.DOCKER_USERNAME }}
|
username: ${{ secrets.DOCKER_USERNAME }}
|
||||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||||
|
|
||||||
@ -63,14 +70,15 @@ jobs:
|
|||||||
echo "Unity Version: $VERSION"
|
echo "Unity Version: $VERSION"
|
||||||
|
|
||||||
- name: Docker Build
|
- name: Docker Build
|
||||||
run: .gitea/workflows/scripts/build-image.sh
|
run: .gitea/workflows/scripts/build-runner-image.sh
|
||||||
id: build-image
|
id: build-image
|
||||||
env:
|
env:
|
||||||
UNITY_VERSION: ${{ env.UNITY_VERSION }}
|
UNITY_VERSION: ${{ env.UNITY_VERSION }}
|
||||||
UNITY_PLATFORM: ${{ matrix.platform }}
|
UNITY_MODULES: ${{ matrix.platform }}
|
||||||
IMAGE: ${{ env.DOCKER_REGISTRY }}unityci/editor
|
|
||||||
GAMECI_VERSION: ${{ env.GAMECI_VERSION }}
|
GAMECI_VERSION: ${{ env.GAMECI_VERSION }}
|
||||||
ONLY_RUNNER_TAG: true
|
GAMECI_OS: ${{ env.GAMECI_OS }}
|
||||||
|
IMAGE: ${{ env.DOCKER_REGISTRY }}unityci/editor
|
||||||
|
TAG: ${{ env.GAMECI_OS }}-${{ env.UNITY_VERSION }}-${{ matrix.platform }}-runner
|
||||||
|
|
||||||
- name: Docker Push
|
- name: Docker Push
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@ -6,7 +6,8 @@ on:
|
|||||||
paths:
|
paths:
|
||||||
- versions.txt
|
- versions.txt
|
||||||
- dockerfiles/runner.dockerfile
|
- dockerfiles/runner.dockerfile
|
||||||
- .github/workflows/create-runner.yaml
|
- .gitea/workflows/create-runner.yaml
|
||||||
|
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
@ -15,6 +16,7 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
DOCKER_REGISTRY: docker.lakes.house/
|
DOCKER_REGISTRY: docker.lakes.house/
|
||||||
UNITY_MODULES: webgl android ios mac-mono windows-mono linux-il2cpp
|
UNITY_MODULES: webgl android ios mac-mono windows-mono linux-il2cpp
|
||||||
|
GAMECI_OS: ubuntu
|
||||||
GAMECI_VERSION: 3
|
GAMECI_VERSION: 3
|
||||||
|
|
||||||
name: Build
|
name: Build
|
||||||
@ -40,8 +42,9 @@ jobs:
|
|||||||
UNITY_VERSION: ${{ env.UNITY_VERSION }}
|
UNITY_VERSION: ${{ env.UNITY_VERSION }}
|
||||||
UNITY_MODULES: ${{ env.UNITY_MODULES }}
|
UNITY_MODULES: ${{ env.UNITY_MODULES }}
|
||||||
GAMECI_VERSION: ${{ env.GAMECI_VERSION }}
|
GAMECI_VERSION: ${{ env.GAMECI_VERSION }}
|
||||||
GAMECI_OS: ubuntu
|
GAMECI_OS: ${{ env.GAMECI_OS }}
|
||||||
IMAGE: ${{ env.DOCKER_REGISTRY }}unityci/editor
|
IMAGE: ${{ env.DOCKER_REGISTRY }}unityci/editor
|
||||||
|
TAG: ${{ env.GAMECI_OS }}-${{ env.UNITY_VERSION }}-runner
|
||||||
|
|
||||||
- name: Docker Push
|
- name: Docker Push
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@ -1,101 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# Ensure UNITY_VERSION is set, pull from arguments if not
|
|
||||||
if [ -z "${UNITY_VERSION}" ]; then
|
|
||||||
if [ -n "$1" ]; then
|
|
||||||
UNITY_VERSION=$1
|
|
||||||
else
|
|
||||||
echo "Error: UNITY_VERSION is not set."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Ensure UNITY_PLATFORM is set, pull from arguments if not
|
|
||||||
if [ -z "${UNITY_PLATFORM}" ]; then
|
|
||||||
if [ -n "$2" ]; then
|
|
||||||
UNITY_PLATFORM=$2
|
|
||||||
else
|
|
||||||
echo "Error: UNITY_PLATFORM is not set."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Ensure IMAGE is set, pull from arguments if not
|
|
||||||
if [ -z "${IMAGE}" ]; then
|
|
||||||
if [ -n "$3" ]; then
|
|
||||||
IMAGE=$3
|
|
||||||
else
|
|
||||||
echo "Error: IMAGE is not set."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Ensure GAME_CI_VERSION is set, default to 3 if not
|
|
||||||
if [ -z "${GAMECI_VERSION}" ]; then
|
|
||||||
GAMECI_VERSION=3
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Ensure IMAGE_OS is set, default to ubuntu if not
|
|
||||||
if [ -z "${GAMECI_OS}" ]; then
|
|
||||||
|
|
||||||
# windows-il2cpp requires windows OS
|
|
||||||
if [ "${UNITY_PLATFORM}" = "windows-il2cpp" ]; then
|
|
||||||
GAMECI_OS="windows"
|
|
||||||
else
|
|
||||||
GAMECI_OS="ubuntu"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# TODO: MacOS probably requires a mac image.
|
|
||||||
# Might be worth just putting this in the strategy at this point
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Ensure PLATFORM is set, default to the current system if not
|
|
||||||
if [ -z "${PLATFORM}" ]; then
|
|
||||||
PLATFORM=$(uname -m)
|
|
||||||
case "${PLATFORM}" in
|
|
||||||
x86_64) PLATFORM="linux/amd64" ;;
|
|
||||||
arm64) PLATFORM="linux/arm64" ;;
|
|
||||||
*)
|
|
||||||
echo "Error: Unsupported platform ${PLATFORM}."
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
BASE_IMAGE=unityci/editor:${GAMECI_OS}-${UNITY_VERSION}-${UNITY_PLATFORM}-${GAMECI_VERSION}
|
|
||||||
SHORT_TAG=${GAMECI_OS}-${UNITY_VERSION}-${UNITY_PLATFORM}
|
|
||||||
TAG=${SHORT_TAG}-runner
|
|
||||||
FULL_IMAGE=${IMAGE}:${TAG}
|
|
||||||
|
|
||||||
ADDITIONAL_TAGS=""
|
|
||||||
if [ "${ONLY_RUNNER_TAG}" != "true" ]; then
|
|
||||||
ADDITIONAL_TAGS="$ADDITIONAL_TAGS -t ${IMAGE}:${SHORT_TAG}"
|
|
||||||
ADDITIONAL_TAGS="$ADDITIONAL_TAGS -t ${IMAGE}:${SHORT_TAG}-${GAMECI_VERSION}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Building Docker image ${FULL_IMAGE}"
|
|
||||||
echo "- Platfrom: ${PLATFORM}"
|
|
||||||
echo "- Base: ${BASE_IMAGE}"
|
|
||||||
echo "- Tag: ${TAG}"
|
|
||||||
echo "- Image: ${IMAGE}:${TAG}"
|
|
||||||
echo "- Additional Tags: ${ADDITIONAL_TAGS}"
|
|
||||||
|
|
||||||
docker build \
|
|
||||||
--platform ${PLATFORM} \
|
|
||||||
--build-arg BASE_IMAGE=${BASE_IMAGE} \
|
|
||||||
${ADDITIONAL_TAGS} \
|
|
||||||
-t ${FULL_IMAGE} \
|
|
||||||
${DOCKER_BUILD_ARGS} \
|
|
||||||
-f ./dockerfiles/individual.dockerfile .
|
|
||||||
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo "Error: Docker build failed."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Export IMAGE and TAG for GitHub Actions
|
|
||||||
if [ -n "$GITHUB_OUTPUT" ]; then
|
|
||||||
echo "IMAGE=${IMAGE}" >> $GITHUB_OUTPUT
|
|
||||||
echo "TAG=${TAG}" >> $GITHUB_OUTPUT
|
|
||||||
echo "FULL_IMAGE=${FULL_IMAGE}" >> $GITHUB_OUTPUT
|
|
||||||
fi
|
|
||||||
@ -11,16 +11,16 @@ fi
|
|||||||
|
|
||||||
# Fetch the changelog and extract the changeset ID for the specified Unity version
|
# Fetch the changelog and extract the changeset ID for the specified Unity version
|
||||||
# This is because hub doesnt remember every version of unity and uses the changset for the exact id lookup.
|
# This is because hub doesnt remember every version of unity and uses the changset for the exact id lookup.
|
||||||
if [ -z "${UNITY_CHANGESET}" ]; then
|
# if [ -z "${UNITY_CHANGESET}" ]; then
|
||||||
echo "Warning: No changeset provided. Scraping one from the change logs."
|
# echo "Warning: No changeset provided. Scraping one from the change logs."
|
||||||
echo "This might take a while. Use the UNITY_CHANGESET to avoid this lookup."
|
# echo "This might take a while. Use the UNITY_CHANGESET to avoid this lookup."
|
||||||
CHANGELOG_URL="https://unity.com/releases/editor/whats-new/${UNITY_VERSION}"
|
# CHANGELOG_URL="https://unity.com/releases/editor/whats-new/${UNITY_VERSION}"
|
||||||
UNITY_CHANGESET=$(curl -s -r 0-500 "$CHANGELOG_URL" | grep -oP 'unityhub://(?:[0-9a-z.])+/\K([a-z0-9]+)' | head -n 1)
|
# UNITY_CHANGESET=$(curl -s -r 0-500 "$CHANGELOG_URL" | grep -oP 'unityhub://(?:[0-9a-z.])+/\K([a-z0-9]+)' | head -n 1)
|
||||||
if [ -z "$UNITY_CHANGESET" ]; then
|
# if [ -z "$UNITY_CHANGESET" ]; then
|
||||||
echo "Error: Could not extract changeset for Unity version ${UNITY_VERSION}."
|
# echo "Error: Could not extract changeset for Unity version ${UNITY_VERSION}."
|
||||||
exit 1
|
# exit 1
|
||||||
fi
|
# fi
|
||||||
fi
|
# fi
|
||||||
|
|
||||||
# Ensure we have some modules
|
# Ensure we have some modules
|
||||||
if [ -z "${UNITY_MODULES}" ]; then
|
if [ -z "${UNITY_MODULES}" ]; then
|
||||||
@ -32,16 +32,6 @@ if [ -z "${UNITY_MODULES}" ]; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Ensure IMAGE is set, pull from arguments if not
|
|
||||||
if [ -z "${IMAGE}" ]; then
|
|
||||||
if [ -n "$3" ]; then
|
|
||||||
IMAGE=$3
|
|
||||||
else
|
|
||||||
echo "Error: IMAGE is not set."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Ensure GAME_CI_VERSION is set, default to 3 if not
|
# Ensure GAME_CI_VERSION is set, default to 3 if not
|
||||||
if [ -z "${GAMECI_VERSION}" ]; then
|
if [ -z "${GAMECI_VERSION}" ]; then
|
||||||
GAMECI_VERSION=3
|
GAMECI_VERSION=3
|
||||||
@ -74,6 +64,22 @@ if [ -z "${PLATFORM}" ]; then
|
|||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Ensure IMAGE is set, pull from arguments if not
|
||||||
|
if [ -z "${IMAGE}" ]; then
|
||||||
|
if [ -n "$3" ]; then
|
||||||
|
IMAGE=$3
|
||||||
|
else
|
||||||
|
echo "Error: IMAGE is not set."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Ensure the TAG is set, default to latest if not
|
||||||
|
if [ -z "${TAG}" ]; then
|
||||||
|
TAG="${GAMECI_OS}-${UNITY_VERSION}-runner"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Ensure some additional build settings are set
|
# Ensure some additional build settings are set
|
||||||
if [ -z "${DOCKER_BUILD_ARGS}" ]; then
|
if [ -z "${DOCKER_BUILD_ARGS}" ]; then
|
||||||
DOCKER_BUILD_ARGS=""
|
DOCKER_BUILD_ARGS=""
|
||||||
@ -81,21 +87,19 @@ fi
|
|||||||
|
|
||||||
BASE_TAG=${GAMECI_OS}-${UNITY_VERSION}-base-${GAMECI_VERSION}
|
BASE_TAG=${GAMECI_OS}-${UNITY_VERSION}-base-${GAMECI_VERSION}
|
||||||
BASE_IMAGE=unityci/editor:${BASE_TAG}
|
BASE_IMAGE=unityci/editor:${BASE_TAG}
|
||||||
DEST_TAG=${GAMECI_OS}-${UNITY_VERSION}-runner
|
DEST_IMAGE=${IMAGE}:${TAG}
|
||||||
DEST_IMAGE=${IMAGE}:${DEST_TAG}
|
|
||||||
|
|
||||||
echo "Building Docker image ${DEST_IMAGE}"
|
echo "Building Docker image ${DEST_IMAGE}"
|
||||||
echo "- Version: ${UNITY_VERSION}"
|
echo "- Version: ${UNITY_VERSION}"
|
||||||
echo "- Changeset: ${UNITY_CHANGESET}"
|
echo "- Changeset: ${UNITY_CHANGESET}"
|
||||||
echo "- Platfrom: ${PLATFORM}"
|
echo "- Platfrom: ${PLATFORM}"
|
||||||
echo "- Base: ${BASE_IMAGE}"
|
echo "- Base: ${BASE_IMAGE}"
|
||||||
echo "- Tag: ${DEST_TAG}"
|
echo "- Tag: ${TAG}"
|
||||||
echo "- Image: ${DEST_IMAGE}"
|
echo "- Image: ${DEST_IMAGE}"
|
||||||
|
|
||||||
docker buildx build \
|
docker build \
|
||||||
--platform ${PLATFORM} \
|
--platform ${PLATFORM} \
|
||||||
--build-arg "VERSION=${UNITY_VERSION}" \
|
--build-arg "VERSION=${UNITY_VERSION}" \
|
||||||
--build-arg "CHANGESET=${UNITY_CHANGESET}" \
|
|
||||||
--build-arg "BASE_IMAGE=${BASE_IMAGE}" \
|
--build-arg "BASE_IMAGE=${BASE_IMAGE}" \
|
||||||
--build-arg "MODULE=${UNITY_MODULES}" \
|
--build-arg "MODULE=${UNITY_MODULES}" \
|
||||||
-t ${DEST_IMAGE} ${DOCKER_BUILD_ARGS} \
|
-t ${DEST_IMAGE} ${DOCKER_BUILD_ARGS} \
|
||||||
@ -109,6 +113,6 @@ fi
|
|||||||
# Export IMAGE and TAG for GitHub Actions
|
# Export IMAGE and TAG for GitHub Actions
|
||||||
if [ -n "$GITHUB_OUTPUT" ]; then
|
if [ -n "$GITHUB_OUTPUT" ]; then
|
||||||
echo "IMAGE=${IMAGE}" >> $GITHUB_OUTPUT
|
echo "IMAGE=${IMAGE}" >> $GITHUB_OUTPUT
|
||||||
echo "TAG=$DEST_TAG" >> $GITHUB_OUTPUT
|
echo "TAG=$TAG" >> $GITHUB_OUTPUT
|
||||||
echo "FULL_IMAGE=${DEST_IMAGE}" >> $GITHUB_OUTPUT
|
echo "FULL_IMAGE=${DEST_IMAGE}" >> $GITHUB_OUTPUT
|
||||||
fi
|
fi
|
||||||
|
|||||||
14
.github/workflows/create-image.yaml
vendored
14
.github/workflows/create-image.yaml
vendored
@ -6,14 +6,18 @@ on:
|
|||||||
branches: [main]
|
branches: [main]
|
||||||
paths:
|
paths:
|
||||||
- versions.txt
|
- versions.txt
|
||||||
- Dockerfile
|
- dockerfiles/runner.dockerfile
|
||||||
- .github/workflows/create-image.yaml
|
- .github/workflows/create-image.yaml
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-docker:
|
build-docker:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
env:
|
||||||
|
GAMECI_OS: ubuntu
|
||||||
|
GAMECI_VERSION: 3
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
|
max-parallel: 2
|
||||||
matrix:
|
matrix:
|
||||||
platform:
|
platform:
|
||||||
- webgl
|
- webgl
|
||||||
@ -43,13 +47,15 @@ jobs:
|
|||||||
echo "Unity Version: $VERSION"
|
echo "Unity Version: $VERSION"
|
||||||
|
|
||||||
- name: Docker Build
|
- name: Docker Build
|
||||||
run: .gitea/workflows/scripts/build-individual-image.sh
|
run: .gitea/workflows/scripts/build-runner-image.sh
|
||||||
id: build-image
|
id: build-image
|
||||||
env:
|
env:
|
||||||
UNITY_VERSION: ${{ env.UNITY_VERSION }}
|
UNITY_VERSION: ${{ env.UNITY_VERSION }}
|
||||||
UNITY_PLATFORM: ${{ matrix.platform }}
|
UNITY_MODULES: ${{ matrix.platform }}
|
||||||
IMAGE: "${{ vars.DOCKERHUB_USERNAME }}/unity-runner"
|
|
||||||
GAMECI_VERSION: ${{ env.GAMECI_VERSION }}
|
GAMECI_VERSION: ${{ env.GAMECI_VERSION }}
|
||||||
|
GAMECI_OS: ${{ env.GAMECI_OS }}
|
||||||
|
IMAGE: "${{ vars.DOCKERHUB_USERNAME }}/unity-runner"
|
||||||
|
TAG: ${{ env.GAMECI_OS }}-${{ env.UNITY_VERSION }}-${{ matrix.platform }}-runner
|
||||||
|
|
||||||
- name: Docker Push
|
- name: Docker Push
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
5
.github/workflows/create-runner.yaml
vendored
5
.github/workflows/create-runner.yaml
vendored
@ -14,6 +14,8 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
env:
|
env:
|
||||||
UNITY_MODULES: webgl android ios mac-mono windows-mono linux-il2cpp
|
UNITY_MODULES: webgl android ios mac-mono windows-mono linux-il2cpp
|
||||||
|
GAMECI_OS: ubuntu
|
||||||
|
GAMECI_VERSION: 3
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
name: Docker Hub
|
name: Docker Hub
|
||||||
@ -41,8 +43,9 @@ jobs:
|
|||||||
UNITY_VERSION: ${{ env.UNITY_VERSION }}
|
UNITY_VERSION: ${{ env.UNITY_VERSION }}
|
||||||
UNITY_MODULES: ${{ env.UNITY_MODULES }}
|
UNITY_MODULES: ${{ env.UNITY_MODULES }}
|
||||||
GAMECI_VERSION: ${{ env.GAMECI_VERSION }}
|
GAMECI_VERSION: ${{ env.GAMECI_VERSION }}
|
||||||
GAMECI_OS: ubuntu
|
GAMECI_OS: ${{ env.GAMECI_OS }}
|
||||||
IMAGE: "${{ vars.DOCKERHUB_USERNAME }}/unity-runner"
|
IMAGE: "${{ vars.DOCKERHUB_USERNAME }}/unity-runner"
|
||||||
|
TAG: ${{ env.GAMECI_OS }}-${{ env.UNITY_VERSION }}-runner
|
||||||
|
|
||||||
- name: Docker Push
|
- name: Docker Push
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@ -1,41 +0,0 @@
|
|||||||
ARG BASE_IMAGE=unityci/editor
|
|
||||||
|
|
||||||
FROM $BASE_IMAGE
|
|
||||||
RUN apt-get update && \
|
|
||||||
apt-get install -y \
|
|
||||||
git \
|
|
||||||
curl \
|
|
||||||
gcc \
|
|
||||||
make \
|
|
||||||
libssl-dev \
|
|
||||||
zlib1g-dev \
|
|
||||||
libsqlite3-dev
|
|
||||||
|
|
||||||
# Set up the scripts
|
|
||||||
RUN git clone --depth=1 https://github.com/game-ci/unity-builder.git /gameci && \
|
|
||||||
cp -rf /gameci/dist/platforms/ubuntu/steps /steps && \
|
|
||||||
cp -rf /gameci/dist/default-build-script /UnityBuilderAction && \
|
|
||||||
cp /gameci/dist/platforms/ubuntu/entrypoint.sh /entrypoint.sh
|
|
||||||
|
|
||||||
# Set up Node.js environment for github actions
|
|
||||||
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \
|
|
||||||
apt-get install -y nodejs && \
|
|
||||||
npm install -g npm@latest
|
|
||||||
|
|
||||||
# Install Blender
|
|
||||||
ARG BLENDER_SHORT_VERSION=3.4
|
|
||||||
ARG BLENDER_FULL_VERSION=3.4.1
|
|
||||||
RUN echo "BLENDER_FULL_VERSION: $BLENDER_FULL_VERSION" && \
|
|
||||||
echo echo "BLENDER_SHORT_VERSION: $BLENDER_SHORT_VERSION" && \
|
|
||||||
apt-get install -y wget && \
|
|
||||||
wget https://download.blender.org/release/Blender$BLENDER_SHORT_VERSION/blender-$BLENDER_FULL_VERSION-linux-x64.tar.xz && \
|
|
||||||
tar -xf blender-$BLENDER_FULL_VERSION-linux-x64.tar.xz && \
|
|
||||||
rm blender-$BLENDER_FULL_VERSION-linux-x64.tar.xz
|
|
||||||
ENV PATH="$PATH:/blender-$BLENDER_FULL_VERSION-linux-x64"
|
|
||||||
|
|
||||||
# Add custom scripts
|
|
||||||
COPY scripts/build.sh /build.sh
|
|
||||||
RUN chmod +x /build.sh
|
|
||||||
|
|
||||||
# Done
|
|
||||||
ENTRYPOINT [ "/entrypoint.sh" ]
|
|
||||||
@ -14,15 +14,15 @@ COPY --from=editor "$UNITY_PATH/" /opt/unity/editors/$VERSION/
|
|||||||
# Install modules for that editor
|
# Install modules for that editor
|
||||||
ARG MODULE="non-existent-module"
|
ARG MODULE="non-existent-module"
|
||||||
RUN for mod in $MODULE; do \
|
RUN for mod in $MODULE; do \
|
||||||
if [ "$mod" = "base" ] ; then \
|
if [ "$mod" = "base" ] ; then \
|
||||||
echo "running default modules for this baseOs"; \
|
echo "running default modules for this baseOs"; \
|
||||||
else \
|
else \
|
||||||
unity-hub install-modules --version "$VERSION" --module "$mod" --childModules | tee /var/log/install-module-${mod}.log && \
|
unity-hub install-modules --version "$VERSION" --module "$mod" --childModules | tee /var/log/install-module-${mod}.log && \
|
||||||
grep 'Missing module\|Completed with errors' /var/log/install-module-${mod}.log | exit $(wc -l); \
|
grep 'Missing module\|Completed with errors' /var/log/install-module-${mod}.log | exit $(wc -l); \
|
||||||
fi \
|
fi \
|
||||||
done \
|
done \
|
||||||
# Set execute permissions for modules
|
# Set execute permissions for modules
|
||||||
&& chmod -R 755 /opt/unity/editors/$VERSION/Editor/Data/PlaybackEngines
|
&& chmod -R 755 /opt/unity/editors/$VERSION/Editor/Data/PlaybackEngines
|
||||||
|
|
||||||
RUN echo "$VERSION-$MODULE" | grep -q -vP '^(2021.2.(?)|2021.[3-9]|202[2-9]|[6-9][0-9]{3}|[1-9][0-9]{4,}).*linux' \
|
RUN echo "$VERSION-$MODULE" | grep -q -vP '^(2021.2.(?)|2021.[3-9]|202[2-9]|[6-9][0-9]{3}|[1-9][0-9]{4,}).*linux' \
|
||||||
&& exit 0 \
|
&& exit 0 \
|
||||||
@ -46,40 +46,45 @@ COPY --from=builder /opt/unity/editors/$VERSION/ "$UNITY_PATH/"
|
|||||||
RUN echo $VERSION > "$UNITY_PATH/version"
|
RUN echo $VERSION > "$UNITY_PATH/version"
|
||||||
|
|
||||||
RUN apt-get update && \
|
RUN apt-get update && \
|
||||||
apt-get install -y \
|
apt-get install -y \
|
||||||
git \
|
git \
|
||||||
curl \
|
curl \
|
||||||
gcc \
|
gcc \
|
||||||
make \
|
make \
|
||||||
libssl-dev \
|
libssl-dev \
|
||||||
zlib1g-dev \
|
zlib1g-dev \
|
||||||
libsqlite3-dev
|
libsqlite3-dev
|
||||||
|
|
||||||
# Set up the scripts
|
# Set up the scripts
|
||||||
RUN git clone --depth=1 https://github.com/game-ci/unity-builder.git /gameci && \
|
RUN git clone --depth=1 https://github.com/game-ci/unity-builder.git /gameci && \
|
||||||
cp -rf /gameci/dist/platforms/ubuntu/steps /steps && \
|
cp -rf /gameci/dist/platforms/ubuntu/steps /steps && \
|
||||||
cp -rf /gameci/dist/default-build-script /UnityBuilderAction && \
|
cp -rf /gameci/dist/default-build-script /UnityBuilderAction && \
|
||||||
cp /gameci/dist/platforms/ubuntu/entrypoint.sh /entrypoint.sh
|
cp /gameci/dist/platforms/ubuntu/entrypoint.sh /entrypoint.sh
|
||||||
|
|
||||||
# Set up Node.js environment for github actions
|
# Set up Node.js environment for github actions
|
||||||
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \
|
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \
|
||||||
apt-get install -y nodejs && \
|
apt-get install -y nodejs && \
|
||||||
npm install -g npm@latest
|
npm install -g npm@latest
|
||||||
|
|
||||||
# Install Blender
|
# Install Blender
|
||||||
ARG BLENDER_SHORT_VERSION=3.4
|
ARG BLENDER_SHORT_VERSION=3.4
|
||||||
ARG BLENDER_FULL_VERSION=3.4.1
|
ARG BLENDER_FULL_VERSION=3.4.1
|
||||||
RUN echo "BLENDER_FULL_VERSION: $BLENDER_FULL_VERSION" && \
|
RUN echo "BLENDER_FULL_VERSION: $BLENDER_FULL_VERSION" && \
|
||||||
echo echo "BLENDER_SHORT_VERSION: $BLENDER_SHORT_VERSION" && \
|
echo echo "BLENDER_SHORT_VERSION: $BLENDER_SHORT_VERSION" && \
|
||||||
apt-get install -y wget && \
|
apt-get install -y wget && \
|
||||||
wget https://download.blender.org/release/Blender$BLENDER_SHORT_VERSION/blender-$BLENDER_FULL_VERSION-linux-x64.tar.xz && \
|
wget https://download.blender.org/release/Blender$BLENDER_SHORT_VERSION/blender-$BLENDER_FULL_VERSION-linux-x64.tar.xz && \
|
||||||
tar -xf blender-$BLENDER_FULL_VERSION-linux-x64.tar.xz && \
|
tar -xf blender-$BLENDER_FULL_VERSION-linux-x64.tar.xz && \
|
||||||
rm blender-$BLENDER_FULL_VERSION-linux-x64.tar.xz
|
rm blender-$BLENDER_FULL_VERSION-linux-x64.tar.xz
|
||||||
ENV PATH="$PATH:/blender-$BLENDER_FULL_VERSION-linux-x64"
|
ENV PATH="$PATH:/blender-$BLENDER_FULL_VERSION-linux-x64"
|
||||||
|
|
||||||
# Add custom scripts
|
# Add custom scripts
|
||||||
COPY scripts/build.sh /build.sh
|
COPY scripts/build.sh /build.sh
|
||||||
RUN chmod +x /build.sh
|
RUN chmod +x /build.sh
|
||||||
|
|
||||||
|
LABEL com.unity3d.version="$VERSION"
|
||||||
|
LABEL com.unity3d.modules="$MODULE"
|
||||||
|
LABEL org.blender.version="$BLENDER_FULL_VERSION"
|
||||||
|
|
||||||
# Done
|
# Done
|
||||||
|
ENTRYPOINT [ "/entrypoint.sh" ]
|
||||||
# ENTRYPOINT [ "/bin/bash" ]~
|
# ENTRYPOINT [ "/bin/bash" ]~
|
||||||
Loading…
x
Reference in New Issue
Block a user