45 lines
2.5 KiB
YAML
45 lines
2.5 KiB
YAML
.craft_windows_base:
|
|
stage: deploy
|
|
when: manual
|
|
image: invent-registry.kde.org/sysadmin/ci-images/windows-msvc2019-qt515:latest
|
|
#needs: ["windows_qt515"]
|
|
tags:
|
|
- Windows
|
|
variables:
|
|
PYTHONUTF8: 1
|
|
GIT_STRATEGY: none
|
|
# KDECI_CRAFT_PLATFORM is specified in the derived jobs
|
|
KDECI_CRAFT_CACHE: C:/Gitlab/Craft/download/
|
|
KDECI_CRAFT_CONFIG: ci-utilities/resources/CraftConfig.ini
|
|
KDECI_CRAFT_PROJECT_CONFIG: $CI_PROJECT_DIR/src/.craft.ini
|
|
interruptible: true
|
|
before_script:
|
|
- git clone $env:CI_REPOSITORY_URL --branch=$env:CI_COMMIT_REF_NAME src/
|
|
# Create empty .craft.ini if none exists
|
|
- if (!(Test-Path $env:KDECI_CRAFT_PROJECT_CONFIG)) { New-Item $env:KDECI_CRAFT_PROJECT_CONFIG -ItemType file }
|
|
- cd C:\Gitlab\Craft\
|
|
- Get-ChildItem C:\Gitlab\Craft\ | Remove-Item -Recurse -Force
|
|
- git clone https://invent.kde.org/packaging/craftmaster --branch=master
|
|
- git clone https://invent.kde.org/sysadmin/ci-utilities
|
|
# Define a short cut for the lengthy CraftMaster command line
|
|
- function Run-CraftMaster { python craftmaster/CraftMaster.py --config $env:KDECI_CRAFT_CONFIG --config-override $env:KDECI_CRAFT_PROJECT_CONFIG --target $env:KDECI_CRAFT_PLATFORM $args }
|
|
script:
|
|
# Set up craft settings and blueprint settings
|
|
- Run-CraftMaster --setup
|
|
# Get Craft itself ready
|
|
- Run-CraftMaster -c -i --options virtual.ignored=True --update craft
|
|
# Install all of our dependencies
|
|
- Run-CraftMaster -c --install-deps $env:CI_PROJECT_NAME
|
|
# Build the actual application
|
|
- Run-CraftMaster -c --no-cache --target master --src-dir $env:CI_PROJECT_DIR/src/ $env:CI_PROJECT_NAME
|
|
# Ensure the tools needed to conduct packaging are installed
|
|
- Run-CraftMaster -c -i --update nsis
|
|
# Package it up!
|
|
- Run-CraftMaster -c --package --target master --src-dir $env:CI_PROJECT_DIR/src/ $env:CI_PROJECT_NAME
|
|
- $packageAppx = Run-CraftMaster -c --get subinfo.options.dynamic.packageAppx $env:CI_PROJECT_NAME
|
|
- if ($packageAppx -eq "True") { Run-CraftMaster -c --package --options "[Packager]PackageType=AppxPackager" --target master --src-dir $env:CI_PROJECT_DIR/src/ $env:CI_PROJECT_NAME }
|
|
# Save our package
|
|
- $packageDir = Run-CraftMaster -c -q --get "packageDestinationDir()" virtual/base
|
|
- mkdir $env:CI_PROJECT_DIR/.kde-ci-packages
|
|
- cd $env:CI_PROJECT_DIR/.kde-ci-packages
|
|
- Get-ChildItem -Path $packageDir -Recurse -Include *.appx, *.appxupload, *.exe, *.7z, *.sha256 | Copy-Item
|