vkd3d/gitlab/image.yml
Giovanni Mascellani 7fbed358c9 ci: Build DXC for release.
Otherwise a lot of assertions trigger, even for legitimate uses.
2024-10-22 20:32:51 +02:00

69 lines
2.9 KiB
YAML

image-linux:
stage: image
rules:
- if: $CI_PIPELINE_SOURCE == 'push' && $CI_PROJECT_PATH == "wine/vkd3d" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
changes:
- .gitlab-ci.yml
- gitlab/image.yml
- gitlab/image.docker
image:
name: gcr.io/kaniko-project/executor:debug
entrypoint: [""]
variables:
IMAGE_SOURCE: "$CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX/debian:bookworm"
IMAGE_LOCAL: "$CI_REGISTRY_IMAGE:debian-bookworm"
DOCKER_FILE: "$CI_PROJECT_DIR/gitlab/image.docker"
script:
- mkdir -p /kaniko/.docker
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"auth\":\"$(printf "%s:%s" "$CI_REGISTRY_USER" "$CI_REGISTRY_PASSWORD" | base64 | tr -d '\n')\"},\"$CI_DEPENDENCY_PROXY_SERVER\":{\"auth\":\"$(printf "%s:%s" "$CI_DEPENDENCY_PROXY_USER" "$CI_DEPENDENCY_PROXY_PASSWORD" | base64 | tr -d '\n')\"}}}" > /kaniko/.docker/config.json
- sed -i "1iFROM $IMAGE_SOURCE" "$DOCKER_FILE"
- /kaniko/executor --context "$CI_PROJECT_DIR" --dockerfile "$DOCKER_FILE" --destination "$IMAGE_LOCAL"
# Job `image-mac' must be run each time the pipeline is run on a push,
# otherwise macOS artifacts are not regenerated and macOS jobs cannot find them.
# So we add a dependency on image.docker too, even if that file is not really
# used for macOS.
image-mac:
stage: image
rules:
- if: $CI_PIPELINE_SOURCE == 'push' && $CI_PROJECT_PATH == "wine/vkd3d" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
changes:
- .gitlab-ci.yml
- gitlab/image.yml
- gitlab/image.docker
image: winehq-sonoma-pristine
interruptible: true
tags:
- mac
script:
- brew install cmake clang-format
- mkdir image
- mkdir image/dxc
- mkdir image/moltenvk
# The specified commit includes the open sourced libdxil.dylib,
# which is not available yet in any released version
- git clone --recursive https://github.com/microsoft/DirectXShaderCompiler.git
- cd DirectXShaderCompiler
- git checkout dfa1c814cc4c912ba982854b72f64527baa3e7e5
- mkdir build
- cd build
- cmake .. -C ../cmake/caches/PredefinedParams.cmake -D CMAKE_BUILD_TYPE=Release
- make -j$(sysctl -n hw.ncpu)
- cd ../..
- cp DirectXShaderCompiler/build/lib/libdxcompiler.dylib DirectXShaderCompiler/build/lib/libdxil.dylib image/dxc
- git clone --depth 1 --branch v1.2.9 https://github.com/KhronosGroup/MoltenVK.git
- cd MoltenVK
- ./fetchDependencies --macos
- make macos
# Do not mark MoltenVK as a portability driver, otherwise it will be harder for vkd3d to find
# it. Since editing JSON properly is hard, we just rename the key.
- 'sed -i -e "s|is_portability_driver|_is_portability_driver|g" Package/Release/MoltenVK/dylib/macOS/MoltenVK_icd.json'
- cd ..
- cp MoltenVK/Package/Release/MoltenVK/dylib/macOS/MoltenVK_icd.json image/moltenvk
- cp MoltenVK/Package/Release/MoltenVK/dylib/macOS/libMoltenVK.dylib image/moltenvk
artifacts:
paths:
- image