name: 🤓 Individual Runners on: push: branches: [main] paths: - versions.txt - dockerfiles/runner.dockerfile - .gitea/workflows/create-image.yaml workflow_dispatch: inputs: unity_version: description: 'Unity Version' required: false default: '6000.0.35f1' type: string platform: description: 'Platform' required: false default: 'all' type: choice options: - all - webgl - android - ios - mac-mono - windows-mono - linux-il2cpp jobs: build-docker: runs-on: ubuntu-latest env: DOCKER_REGISTRY_DOMAIN: gitea.clubconjure.com DOCKER_REGISTRY: gitea.clubconjure.com/${{ github.repository_owner }}/ UNITY_VERSION: ${{ github.event.inputs.unity_version }} GAMECI_OS: ubuntu GAMECI_VERSION: 3 strategy: max-parallel: 2 matrix: platform: - windows-mono name: Build 🐳 ${{ matrix.platform }} if: ${{ github.event.inputs.platform == 'all' || github.event.inputs.platform == '' || github.event.inputs.platform == matrix.platform }} steps: - uses: actions/checkout@v4 - name: Test connectivity run: | echo "Testing connection to registry..." time curl -v --max-time 30 https://${{ env.DOCKER_REGISTRY_DOMAIN }}/v2/ || true - name: Check secrets env: REGISTRY_TOKEN: ${{ secrets.REGISTRY_TOKEN }} PIPELINES_USERNAME: ${{ secrets.PIPELINES_USERNAME }} run: | echo "Username length: ${#PIPELINES_USERNAME}" echo "Token length: ${#REGISTRY_TOKEN}" if [ -z "$PIPELINES_USERNAME" ]; then echo "ERROR: PIPELINES_USERNAME is empty!"; fi if [ -z "$REGISTRY_TOKEN" ]; then echo "ERROR: REGISTRY_TOKEN is empty!"; fi - name: Login to the Container registry env: REGISTRY_TOKEN: ${{ secrets.REGISTRY_TOKEN }} PIPELINES_USERNAME: ${{ secrets.PIPELINES_USERNAME }} DOCKER_CLIENT_TIMEOUT: 300 COMPOSE_HTTP_TIMEOUT: 300 run: | echo "${REGISTRY_TOKEN}" | docker login "${{ env.DOCKER_REGISTRY_DOMAIN }}" -u "${PIPELINES_USERNAME}" --password-stdin - name: Get Unity Version if: ${{ github.event.inputs.unity_version == '' }} run: | VERSION=$(head -n 1 versions.txt) echo "UNITY_VERSION=$VERSION" >> $GITHUB_ENV echo "Unity Version: $VERSION" - name: Docker Build run: .gitea/workflows/scripts/build-runner-image.sh id: build-image env: UNITY_VERSION: ${{ env.UNITY_VERSION }} UNITY_MODULES: ${{ matrix.platform }} GAMECI_VERSION: ${{ env.GAMECI_VERSION }} GAMECI_OS: ${{ env.GAMECI_OS }} IMAGE: ${{ env.DOCKER_REGISTRY }}unityci/editor TAG: ${{ env.GAMECI_OS }}-${{ env.UNITY_VERSION }}-${{ matrix.platform }}-runner - name: Docker Push run: | echo "Pushing Docker Image ${{ steps.build-image.outputs.FULL_IMAGE }}" echo "- Image: ${{ steps.build-image.outputs.IMAGE }}" echo "- Tag: ${{ steps.build-image.outputs.TAG }}" docker push ${{ steps.build-image.outputs.FULL_IMAGE }}