-
-
Notifications
You must be signed in to change notification settings - Fork 8
/
.kid3-cd.yml
160 lines (154 loc) · 7.18 KB
/
.kid3-cd.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
include:
- project: sysadmin/ci-utilities
file:
- /gitlab-templates/blocks/workflow.yml
.kid3_build_job:
stage: deploy
rules:
- when: manual
allow_failure: true
variables:
GIT_STRATEGY: none
interruptible: true
before_script:
- rm -rf .kde-ci-packages ci-utilities ci-notary-service kid3
- export LANG=en_US.UTF-8
- git clone https://invent.kde.org/sysadmin/ci-utilities.git --depth=1
- git clone https://invent.kde.org/sysadmin/ci-notary-service.git --depth=1
- python3 -u ci-utilities/gitlab-ci-clone.py kid3/
script:
- mkdir -p build-${KID3_CI_PLATFORM}
- rm -f build-${KID3_CI_PLATFORM}/kid3/${KID3_CI_SRC_PKG}
- (cd build-${KID3_CI_PLATFORM} && ../kid3/build.sh)
- mkdir .kde-ci-packages/
- cp -vf build-${KID3_CI_PLATFORM}/kid3/${KID3_CI_SRC_PKG} .kde-ci-packages/${KID3_CI_DST_PKG}
after_script:
#- (cd build-${KID3_CI_PLATFORM} && ../kid3/build.sh clean)
- rm -rf build-${KID3_CI_PLATFORM} kid3 ci-utilities ci-notary-service
artifacts:
expire_in: 3 days
when: always
paths:
- ".kde-ci-packages/"
.kid3_macos_base:
extends: .kid3_build_job
tags:
- macOS
variables:
KDECI_SIGNMACAPP_CONFIG: $CI_PROJECT_DIR/ci-utilities/signing/signmacapp.ini
KDECI_NOTARIZEMACAPP_CONFIG: $CI_PROJECT_DIR/ci-utilities/signing/notarizemacapp.ini
KID3_CI_PLATFORM: macos-$ARCH
KID3_CI_SRC_PKG: "*.dmg"
KID3_CI_DST_PKG: kid3-macos-$ARCH.dmg
KID3_HOMEBREW_PKGS: "cmake ninja autoconf automake libtool xz nasm docbook-xsl p7zip"
QTPREFIX: $CI_PROJECT_DIR/build-${KID3_CI_PLATFORM}/qt-6.5.3/6.5.3/macos
script:
- !reference [.kid3_build_job, script]
- python3 ci-notary-service/signmacapp.py -v --config $KDECI_SIGNMACAPP_CONFIG $CI_PROJECT_DIR/.kde-ci-packages/${KID3_CI_DST_PKG}
- python3 ci-notary-service/notarizemacapp.py -v --config $KDECI_NOTARIZEMACAPP_CONFIG $CI_PROJECT_DIR/.kde-ci-packages/${KID3_CI_DST_PKG}
- python3 -u ci-notary-service/publishbuild.py --config ci-utilities/signing/publishbuild.ini --platform $KID3_CI_PLATFORM "$CI_PROJECT_DIR/.kde-ci-packages/"
kid3_macos_arm64:
extends: .kid3_macos_base
variables:
ARCH: arm64
artifacts:
expose_as: "Kid3 macOS ARM"
kid3_macos_amd64:
extends: .kid3_macos_base
variables:
ARCH: x86_64
artifacts:
expose_as: "Kid3 macOS Intel"
kid3_linux_amd64:
extends: .kid3_build_job
image: invent-registry.kde.org/sysadmin/ci-images/sles15-craft:latest
tags:
- Linux
variables:
KID3_CI_PLATFORM: linux
KID3_CI_SRC_PKG: "*.tgz"
KID3_CI_DST_PKG: kid3-linux-amd64.tgz
QTPREFIX: $CI_PROJECT_DIR/build-${KID3_CI_PLATFORM}/qt-6.5.3/6.5.3/gcc_64
COMPILER: gcc-self-contained
artifacts:
expose_as: "Kid3 Linux"
script:
# An old distribution is used for the build to make the package compatible
# with a wide range of Linux distributions. Install missing packages locally.
- mkdir -p pkg &&
zypper --pkg-cache-dir=$(pwd)/pkg --no-gpg-checks
--plus-repo=https://download.opensuse.org/distribution/leap/15.5/repo/oss
download p7zip-full nasm p7zip-full chrpath perl ninja bzip2
libxslt1 libxslt-tools patchelf libgthread-2_0-0 libdbus-1-3
libpulse0 libfontconfig1 libfreetype6 libpng16-16 libsndfile1
libFLAC8 libogg0 libvorbis0 libvorbisenc2 libspeex1
libgobject-2_0-0 libgstreamer-1_0-0 libgstallocators-1_0-0
libgstapp-1_0-0 libgstaudio-1_0-0 libgstgl-1_0-0
libgstpbutils-1_0-0 libgsttag-1_0-0 libgstvideo-1_0-0
libxcb-cursor0 libgmodule-2_0-0 libgudev-1_0-0 liborc-0_4-0
libunwind autoconf automake docbook-xsl-stylesheets &&
find pkg -name '*.rpm' -exec sh -c 'rpm2cpio {} | cpio -idm' \;
- sed -i -e "s,--prepend-include '/usr/share/autoconf',--prepend-include '$(pwd)/usr/share/autoconf',"
usr/share/autoconf/autom4te.cfg
- sed -i -e "s,/usr/lib64/p7zip/7za,$(pwd)/usr/lib64/p7zip/7za," usr/bin/7za
- export LD_LIBRARY_PATH=$(pwd)/usr/lib64:$(pwd)/usr/lib64/pulseaudio
- export PERL5LIB=$(pwd)/usr/lib/perl5/5.26.1:$(pwd)/usr/share/autoconf
- export AUTOM4TE=$(pwd)/usr/bin/autom4te
- export AUTOM4TE_CFG=$(pwd)/usr/share/autoconf/autom4te.cfg
- export DOCBOOK_XSL_DIR=$(pwd)/usr/share/xml/docbook/stylesheet/nwalsh/1.79.2
- PATH=$PATH:$(pwd)/usr/bin
- !reference [.kid3_build_job, script]
- python3 -u ci-notary-service/publishbuild.py --config ci-utilities/signing/publishbuild.ini --platform $KID3_CI_PLATFORM "$CI_PROJECT_DIR/.kde-ci-packages/"
kid3_windows_amd64:
stage: deploy
rules:
- when: manual
allow_failure: true
image: invent-registry.kde.org/sysadmin/ci-images/windows-msvc2022:latest
tags:
- Windows
variables:
GIT_STRATEGY: none
KID3_CI_PLATFORM: windows
KID3_CI_SRC_PKG: "*.zip"
KID3_CI_DST_PKG: kid3-windows-amd64.zip
QTPREFIX: $CI_PROJECT_DIR/build-${KID3_CI_PLATFORM}/qt-6.5.3/6.5.3/mingw_64
COMPILER: gcc
artifacts:
expose_as: "Kid3 Windows"
interruptible: true
before_script:
- if (Test-Path .kde-ci-packages) { Remove-Item -Recurse -Force .kde-ci-packages }
- if (Test-Path ci-utilities) { Remove-Item -Recurse -Force ci-utilities }
- if (Test-Path ci-notary-service) { Remove-Item -Recurse -Force ci-notary-service }
- if (Test-Path kid3) { Remove-Item -Recurse -Force kid3 }
- git clone https://invent.kde.org/sysadmin/ci-utilities.git --depth=1
- git clone https://invent.kde.org/sysadmin/ci-notary-service.git --depth=1
- python -u ci-utilities/gitlab-ci-clone.py kid3/
script:
- if (!(Test-Path build-$env:KID3_CI_PLATFORM)) { New-Item -ItemType Directory build-$env:KID3_CI_PLATFORM }
- if (Test-Path build-$env:KID3_CI_PLATFORM/kid3/$env:KID3_CI_SRC_PKG) { Remove-Item build-$env:KID3_CI_PLATFORM/kid3/$env:KID3_CI_SRC_PKG }
- Set-Location build-$env:KID3_CI_PLATFORM
- $env:CHERE_INVOKING='enabled_from_arguments'
- $env:MSYSTEM='MINGW64'
- C:/Msys2/usr/bin/bash -l -c 'pacman -S --noconfirm
git patch autoconf automake make docbook-xsl mingw-w64-x86_64-make
mingw-w64-x86_64-ninja mingw-w64-x86_64-nasm mingw-w64-x86_64-libtool
mingw-w64-x86_64-libxslt mingw-w64-x86_64-cmake p7zip;
../kid3/build.sh getqt;
PATH=$(pwd)/qt-6.5.3/Tools/mingw1120_64/bin:$(pwd)/qt-6.5.3/Tools/mingw1120_64/opt/bin:$(pwd)/qt-6.5.3/6.5.3/mingw_64/bin:$PATH;
../kid3/build.sh'
- Set-Location ..
- if (!(Test-Path .kde-ci-packages)) { New-Item -ItemType Directory .kde-ci-packages }
- Copy-Item -Force build-$env:KID3_CI_PLATFORM/kid3/$env:KID3_CI_SRC_PKG .kde-ci-packages/$env:KID3_CI_DST_PKG
- python -u ci-notary-service/publishbuild.py --config ci-utilities/signing/publishbuild.ini --platform $env:KID3_CI_PLATFORM "$env:CI_PROJECT_DIR/.kde-ci-packages/"
after_script:
- if (Test-Path build-$env:KID3_CI_PLATFORM) { Remove-Item -Recurse -Force build-$env:KID3_CI_PLATFORM }
- if (Test-Path kid3) { Remove-Item -Recurse -Force kid3 }
- if (Test-Path ci-utilities) { Remove-Item -Recurse -Force ci-utilities }
- if (Test-Path ci-notary-service) { Remove-Item -Recurse -Force ci-notary-service }
artifacts:
expire_in: 3 days
when: always
paths:
- ".kde-ci-packages/"