diff --git a/.gitea/workflows/build-all-images.yaml b/.gitea/workflows/build-all-images.yaml new file mode 100644 index 0000000..0134f73 --- /dev/null +++ b/.gitea/workflows/build-all-images.yaml @@ -0,0 +1,49 @@ +name: Create Images + +on: + workflow_dispatch: + +jobs: + get-versions: + runs-on: ubuntu-latest + outputs: + versions: ${{ steps.get-versions.outputs.versions }} + steps: + - name: Get Unity Versions + id: get-versions + run: | + VERSIONS=$(head -n -1 versions.txt | tr '\n' ',') + echo "::set-output name=versions::$VERSIONS" + + build-docker: + needs: get-versions + runs-on: ubuntu-latest + env: + GAMECI_VERSION: 3 + PLATFORM: linux/amd64 + DOCKER_REGISTRY: docker.lakes.house + + strategy: + matrix: + platform: + - webgl + - android + version: ${{ fromJson(needs.get-versions.outputs.versions) }} + steps: + - uses: actions/checkout@v4 + - name: Login to Docker Registry + uses: docker/login-action@v3 + with: + registry: ${{ env.DOCKER_REGISTRY }} + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Build Docker Image + run: ./scripts/build-image.sh + env: + UNITY_VERSION: ${{ matrix.version }} + UNITY_PLATFORM: ${{ matrix.platform }} + GAMECI_VERSION: ${{ env.GAMECI_VERSION }} + + - name: Push Docker Image + if: ${{ false }} \ No newline at end of file diff --git a/.gitea/build-all.yaml b/.gitea/workflows/build-latest-image.yaml similarity index 59% rename from .gitea/build-all.yaml rename to .gitea/workflows/build-latest-image.yaml index c485df1..e985026 100644 --- a/.gitea/build-all.yaml +++ b/.gitea/workflows/build-latest-image.yaml @@ -5,6 +5,8 @@ on: push: branches: - main + paths: + - 'versions.txt' jobs: build-docker: @@ -19,8 +21,7 @@ jobs: platform: - webgl - android - version: - - 6000.0.35f1 + steps: - uses: actions/checkout@v4 - name: Login to Docker Registry @@ -30,19 +31,18 @@ jobs: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - - name: Build Docker Image + - name: Get Unity Version + id: get-unity-version run: | - BASE_IMAGE=unityci/editor:ubuntu-${UNITY_VERSION}-${UNITY_PLATFORM}-${GAME_CI_VERSION} - TAG=${{ env.DOCKER_REGISTRY }}/unityci/editor:ubuntu-${UNITY_VERSION}-${UNITY_PLATFORM}-runner - docker build \ - --platform ${PLATFORM} \ - --build-arg GAME_CI_UNITY_EDITOR_IMAGE=${BASE_IMAGE} \ - -t ${TAG} \ - Dockerfiles/UnityEditor.Dockerfile - + VERSION=$(head -n 1 versions.txt) + echo "UNITY_VERSION=$VERSION" >> $GITHUB_ENV + + - name: Build Docker Image + run: ./scripts/build-image.sh env: - UNITY_VERSION: ${{ matrix.version }} + UNITY_VERSION: ${{ env.UNITY_VERSION }} UNITY_PLATFORM: ${{ matrix.platform }} - - - + GAMECI_VERSION: ${{ env.GAMECI_VERSION }} + + - name: Push Docker Image + if: ${{ false }} diff --git a/Dockerfiles/Runner.Dockerfile b/Dockerfiles/Runner.Dockerfile index 6636731..aa5e3f7 100644 --- a/Dockerfiles/Runner.Dockerfile +++ b/Dockerfiles/Runner.Dockerfile @@ -1,6 +1,6 @@ -ARG GAME_CI_UNITY_EDITOR_IMAGE=unityci/editor +ARG BASE_IMAGE=unityci/editor -FROM $GAME_CI_UNITY_EDITOR_IMAGE +FROM $BASE_IMAGE # Setup Dependants RUN apt-get update && \ diff --git a/images.yaml b/images.yaml deleted file mode 100644 index 8560a2a..0000000 --- a/images.yaml +++ /dev/null @@ -1,6 +0,0 @@ -images: - versions: - - 6000.0.35f1 - modules: - - android - - webgl diff --git a/scripts/build-image.sh b/scripts/build-image.sh new file mode 100644 index 0000000..e04d7e8 --- /dev/null +++ b/scripts/build-image.sh @@ -0,0 +1,51 @@ +#!/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 GAME_CI_VERSION is set, default to 3 if not +if [ -z "${GAMECI_VERSION}" ]; then + GAMECI_VERSION=3 +fi + +BASE_IMAGE=unityci/editor:ubuntu-${UNITY_VERSION}-${UNITY_PLATFORM}-${GAMECI_VERSION} +TAG=ubuntu-${UNITY_VERSION}-${UNITY_PLATFORM}-runner + +echo "Base Image: ${BASE_IMAGE}" +echo "Tag: ${TAG}" +echo "Image: ${IMAGE_NAME}:${TAG}" + +docker build \ + --platform ${PLATFORM} \ + --build-arg BASE_IMAGE=${BASE_IMAGE} \ + -t ${IMAGE_NAME}:${TAG} \ + ${DOCKER_BUILD_ARGS} \ + Dockerfiles/Runner.Dockerfile + +if [ $? -ne 0 ]; then + echo "Error: Docker build failed." + exit 1 +fi + +# Export IMAGE_NAME and TAG for GitHub Actions +if [ -n "$GITHUB_ENV" ]; then + echo "IMAGE_NAME=${IMAGE_NAME}" >> $GITHUB_ENV + echo "TAG=${TAG}" >> $GITHUB_ENV +fi +`` \ No newline at end of file diff --git a/versions.txt b/versions.txt new file mode 100644 index 0000000..9f1a7b5 --- /dev/null +++ b/versions.txt @@ -0,0 +1,2 @@ +6000.0.35f1 +-- list of versions with the latest being on top \ No newline at end of file