Commit bd0dcf28 authored by Thomas Braun's avatar Thomas Braun
Browse files

Merge branch 'pixi-win-ci' into 'main'

Replace windows CI jobs with pixi

Note that only 64 bit is supported with conda.

Fix #117

See merge request !141
parents 2ad18451 1f917bba
Loading
Loading
Loading
Loading
Loading
+17 −62
Original line number Diff line number Diff line
@@ -7,15 +7,6 @@ include:
      - 'PreCommit.gitlab-ci.yml'

variables:
    WINDOWS_TANGO_VERSION: 10.1.0
    MYSQL_VERSION: "5.7"
    MYSQL_VERSION_PATCH: "36"
    MSVC_VERSION: v143
    GENERATOR_VERSION: Visual Studio 17 2022
    DEPS_PATH: C:/dependencies
    LIBTANGO: libtango_${WINDOWS_TANGO_VERSION}_${MSVC_VERSION}_${ARCH}_static_release
    DOWNLOAD_URL: "https://gitlab.com/api/v4/projects/24006041/packages/generic/cppTango/${WINDOWS_TANGO_VERSION}/${LIBTANGO}.zip"
    TANGO_PATH: ${DEPS_PATH}/${LIBTANGO}
    DEBIAN_FRONTEND: noninteractive
    GIT_SUBMODULE_STRATEGY: recursive
    TANGO_LINUX_ADDITIONAL_PACKAGES: "libmariadb-dev"
@@ -28,67 +19,33 @@ workflow:
    - if: $CI_COMMIT_TAG
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH

.build-template-win:
.pixi-build:
  stage: build
  rules:
    - if: '$ARCH == "x64"'
      variables:
        MYSQL: "mysql-${MYSQL_VERSION}.${MYSQL_VERSION_PATCH}-winx64"
        MYSQL_PATH: "${DEPS_PATH}/${MYSQL}"
    - if: '$ARCH == "x86"'
  variables:
        MYSQL: "mysql-${MYSQL_VERSION}.${MYSQL_VERSION_PATCH}-win32"
        MYSQL_PATH: "${DEPS_PATH}/${MYSQL}"
  before_script:
    - choco install cmake curl -y
    - if (Test-Path "${DEPS_PATH}") { Remove-Item "${DEPS_PATH}" -Recurse -Force; }
    - New-Item "${DEPS_PATH}" -ItemType Directory
      # See LIBTANGO constant at the top for the exact name
    - curl.exe -JOL "${DOWNLOAD_URL}"
    - 7z x "${LIBTANGO}.zip" -o"${DEPS_PATH}"
    - wget.exe "https://dev.mysql.com/get/Downloads/MySQL-${MYSQL_VERSION}/${MYSQL}.zip" -P "${DEPS_PATH}"
    - 7z x "${DEPS_PATH}/${MYSQL}.zip" -o"${DEPS_PATH}"
    PIXI_HOME: "$CI_PROJECT_DIR/.pixi_install"
    PIXI_NO_PATH_UPDATE: "true"
  script:
    - New-Item build -ItemType Directory
    - cd build
      # We set MySQL_VERSION to avoid a try_run invocation.  The binary
      # requires the VC redistributable which we do not have on the CI
    - cmake -G"${GENERATOR_VERSION}" -A"${PLATFORM}" .. -DTango_ROOT="${TANGO_PATH}" -DMySQL_ROOT="${MYSQL_PATH}" -DTango_FORCE_STATIC=ON -DMySQL_VERSION="${MYSQL_VERSION}.${MYSQL_VERSION_PATH}"
    - cmake --build . --config Release
    - cmake --install .
  after_script:
    - New-Item artifacts -ItemType Directory
    - if (Test-Path "C:\Program Files\TangoDatabase\bin") { Move-Item -Path "C:\Program Files\TangoDatabase\bin\Databaseds.exe" -Destination "artifacts\Databaseds-x64.exe"; }
    - if (Test-Path "C:\Program Files (x86)\TangoDatabase\bin") { Move-Item -Path "C:\Program Files (x86)\TangoDatabase\bin\Databaseds.exe" -Destination "artifacts\Databaseds-x86.exe"; }
  artifacts:
    paths:
      - artifacts
    expire_in: 1 day
  tags:
    - saas-windows-medium-amd64

build-win-64bit:
  extends: .build-template-win
  variables:
    ARCH: x64
    PLATFORM: x64
    - pixi run -e $ENV_TO_TEST build

build-win-32bit:
  extends: .build-template-win
  variables:
    ARCH: x86
    PLATFORM: Win32
build-win:
  extends: .pixi-build
  tags:
    - desy
    - windows
  parallel:
    matrix:
      - ENV_TO_TEST: ["default", "tango95"]
  before_script:
    - iwr -useb https://pixi.sh/install.ps1 | iex
    - $env:PATH = "$env:PIXI_HOME\bin;$env:PATH"

macos:
  stage: build
  extends: .pixi-build
  tags:
    - macos
    - aarch64
    - shell
    - tahoe
  variables:
    PIXI_HOME: "$CI_PROJECT_DIR/.pixi_install"
    PIXI_NO_PATH_UPDATE: "true"
  parallel:
    matrix:
      - PIXI_ARCH: ["aarch64", "x86_64"]
@@ -96,8 +53,6 @@ macos:
  before_script:
    - curl -fsSL https://pixi.sh/install.sh | bash
    - export PATH=${PIXI_HOME}/bin:$PATH
  script:
    - pixi run -e $ENV_TO_TEST build

run-tests-with-mariadb:
  stage: test
+3 −0
Original line number Diff line number Diff line
@@ -29,6 +29,9 @@ _configure = "cmake $CMAKE_ARGS -GNinja -DCMAKE_BUILD_TYPE=Debug -DTANGO_WARNING
build = { cmd = "cmake --build build/$PIXI_ENVIRONMENT_NAME", depends-on = ["_configure"] }
clean = "rm -rf build"

[target.win-64.tasks]
_configure = "cmake $CMAKE_ARGS -G\"NMake Makefiles\" -DCMAKE_BUILD_TYPE=Release . -B build/$PIXI_ENVIRONMENT_NAME"

[environments]
tango95 = ["tango95"]
tango100 = ["tango100"]