diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..1f229fbcd42c757038497410051a0708aa7d99af --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,35 @@ +stages: + - build_images + +variables: + DOCKER_BUILDX_IMAGE: registry.420joos.dev/docker-buildx:1.1 + + DOCKER_BUILDX_CONTEXT_NAME: dotnet_builder + DOCKER_BUILDX_PLATFORM_AMD64: linux/amd64 + DOCKER_BUILDX_PLATFORM_ARM64: linux/arm64 + DOCKER_BUILDX_PLATFORMS: $DOCKER_BUILDX_PLATFORM_AMD64,$DOCKER_BUILDX_PLATFORM_ARM64 + + +# Required vars: +## IMAGE_PATH +## IMAGE_NAME +## PLATFORMS +.build_image_job_template: + stage: build_images + tags: + - docker + image: $DOCKER_BUILDX_IMAGE + script: + - docker login $IMAGE_SERVER --username $DOCKER_USERNAME --password $DOCKER_PASSWORD + - docker buildx create --name $DOCKER_BUILDX_CONTEXT_NAME --platform $DOCKER_BUILDX_PLATFORMS --driver docker-container --bootstrap + - docker buildx build $IMAGE_PATH --tag $IMAGE_SERVER/$IMAGE_NAME --platform $PLATFORMS --builder $DOCKER_BUILDX_CONTEXT_NAME --push + - docker buildx rm $DOCKER_BUILDX_CONTEXT_NAME + - docker logout $IMAGE_SERVER + +dotnet-maui-android: + extends: .build_image_job_template + variables: + IMAGE_PATH: dotnet-maui-android/ + IMAGE_NAME: dotnet-maui-android:7.0 + PLATFORMS: $DOCKER_BUILDX_PLATFORM_AMD64 # multi platform manifest currently not possible because workload maui-android isn't available on arm64 https://developercommunity.visualstudio.com/t/Arm64-support-for-NET-Maui/10107707?q=%5BARM64%5D&stateGroup=active&ftype=idea&sort=relevance + diff --git a/dotnet-maui-android/Dockerfile b/dotnet-maui-android/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..b0f663e93480c663b54da9bd0f1b180361859d85 --- /dev/null +++ b/dotnet-maui-android/Dockerfile @@ -0,0 +1,33 @@ +FROM mcr.microsoft.com/dotnet/sdk:7.0 +MAINTAINER roundev, Andri Joos + +# JAVA +RUN apt-get update && \ + apt-get install -y openjdk-11-jdk && \ + rm -rf /var/lib/apt/lists/* + +ENV JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/ + +# Install workload maui +RUN dotnet workload install maui-android + +# Utils +RUN apt-get update && apt-get install -y \ + unzip && \ + rm -rf /var/lib/apt/lists/* + +# Install Android SDK +RUN mkdir -p /usr/lib/android-sdk/cmdline-tools/latest && \ + curl -k "https://dl.google.com/android/repository/commandlinetools-linux-9123335_latest.zip" -o commandlinetools-linux.zip && \ + unzip -q commandlinetools-linux.zip -d /usr/lib/android-sdk/tmp && \ + mv /usr/lib/android-sdk/tmp/cmdline-tools/* /usr/lib/android-sdk/cmdline-tools/latest && \ + rm -rf /usr/lib/android-sdk/tmp/ && \ + rm commandlinetools-linux.zip + +ENV ANDROID_SDK_ROOT=/usr/lib/android-sdk +ENV PATH=$ANDROID_SDK_ROOT/cmdline-tools/latest/bin:$PATH + +RUN yes | sdkmanager --licenses && \ + sdkmanager "platform-tools" && \ + #sdkmanager "ndk-bundle" && \ # I Don't think this was needed at all + sdkmanager "build-tools;33.0.0" "platforms;android-33"