CI: MSI for Enterprise (#21569)
* CI: ee msi build * shellcheck * Fake it so that we get a ee msi build on pull request runs * fix error in prep job * save msi for testing * get enterprise zip * Fixes to version and hash detection. * Removes ci test code
@ -448,7 +448,7 @@ jobs:
|
|||||||
name: ci job started
|
name: ci job started
|
||||||
command: './scripts/ci-job-started.sh'
|
command: './scripts/ci-job-started.sh'
|
||||||
- run:
|
- run:
|
||||||
name: install docker
|
name: install docker
|
||||||
command: |
|
command: |
|
||||||
apt-get update
|
apt-get update
|
||||||
apt-get install -y docker.io
|
apt-get install -y docker.io
|
||||||
@ -992,6 +992,33 @@ jobs:
|
|||||||
command: './scripts/ci-job-succeeded.sh'
|
command: './scripts/ci-job-succeeded.sh'
|
||||||
when: on_success
|
when: on_success
|
||||||
|
|
||||||
|
build-ee-msi:
|
||||||
|
docker:
|
||||||
|
- image: grafana/wix-toolset-ci:v3
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
- run:
|
||||||
|
name: ci job started
|
||||||
|
command: './scripts/ci-job-started.sh'
|
||||||
|
- attach_workspace:
|
||||||
|
at: .
|
||||||
|
- run:
|
||||||
|
name: Build EE MSI
|
||||||
|
command: './scripts/build/ci-msi-build/ci-msi-build-ee.sh'
|
||||||
|
- persist_to_workspace:
|
||||||
|
root: .
|
||||||
|
paths:
|
||||||
|
- enterprise-dist/grafana-*.msi
|
||||||
|
- enterprise-dist/grafana-*.msi.sha256
|
||||||
|
- run:
|
||||||
|
name: ci job failed
|
||||||
|
command: './scripts/ci-job-failed.sh'
|
||||||
|
when: on_fail
|
||||||
|
- run:
|
||||||
|
name: ci job succeeded
|
||||||
|
command: './scripts/ci-job-succeeded.sh'
|
||||||
|
when: on_success
|
||||||
|
|
||||||
store-build-artifacts:
|
store-build-artifacts:
|
||||||
docker:
|
docker:
|
||||||
- image: circleci/node:12
|
- image: circleci/node:12
|
||||||
@ -1172,6 +1199,7 @@ workflows:
|
|||||||
- mysql-integration-test
|
- mysql-integration-test
|
||||||
- postgres-integration-test
|
- postgres-integration-test
|
||||||
- build-all-enterprise
|
- build-all-enterprise
|
||||||
|
- build-ee-msi
|
||||||
filters: *filter-only-master
|
filters: *filter-only-master
|
||||||
- build-oss-msi:
|
- build-oss-msi:
|
||||||
requires:
|
requires:
|
||||||
@ -1183,6 +1211,16 @@ workflows:
|
|||||||
- shellcheck
|
- shellcheck
|
||||||
- mysql-integration-test
|
- mysql-integration-test
|
||||||
- postgres-integration-test
|
- postgres-integration-test
|
||||||
|
- build-ee-msi:
|
||||||
|
requires:
|
||||||
|
- build-all-enterprise
|
||||||
|
- test-backend
|
||||||
|
- test-frontend
|
||||||
|
- codespell
|
||||||
|
- lint-go
|
||||||
|
- shellcheck
|
||||||
|
- mysql-integration-test
|
||||||
|
- postgres-integration-test
|
||||||
filters: *filter-only-master
|
filters: *filter-only-master
|
||||||
- end-to-end-test:
|
- end-to-end-test:
|
||||||
requires:
|
requires:
|
||||||
@ -1237,6 +1275,7 @@ workflows:
|
|||||||
- shellcheck
|
- shellcheck
|
||||||
- mysql-integration-test
|
- mysql-integration-test
|
||||||
- postgres-integration-test
|
- postgres-integration-test
|
||||||
|
- build-ee-msi
|
||||||
filters: *filter-only-release
|
filters: *filter-only-release
|
||||||
- grafana-docker-release:
|
- grafana-docker-release:
|
||||||
requires:
|
requires:
|
||||||
@ -1284,6 +1323,16 @@ workflows:
|
|||||||
- shellcheck
|
- shellcheck
|
||||||
- mysql-integration-test
|
- mysql-integration-test
|
||||||
- postgres-integration-test
|
- postgres-integration-test
|
||||||
|
- build-ee-msi:
|
||||||
|
requires:
|
||||||
|
- build-all-enterprise
|
||||||
|
- test-backend
|
||||||
|
- test-frontend
|
||||||
|
- codespell
|
||||||
|
- lint-go
|
||||||
|
- shellcheck
|
||||||
|
- mysql-integration-test
|
||||||
|
- postgres-integration-test
|
||||||
filters: *filter-only-release
|
filters: *filter-only-release
|
||||||
- end-to-end-test-release:
|
- end-to-end-test-release:
|
||||||
requires:
|
requires:
|
||||||
|
13
scripts/build/ci-msi-build/Dockerfile
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
FROM grafana/wix-toolset-ci:v3
|
||||||
|
|
||||||
|
RUN mkdir -p /tmp/dist /tmp/cache && \
|
||||||
|
cd /tmp/dist && \
|
||||||
|
wget https://dl.grafana.com/enterprise/master/grafana-enterprise-6.6.0-ca61af52pre.windows-amd64.zip && \
|
||||||
|
unzip -l *.zip
|
||||||
|
|
||||||
|
COPY . /package-grafana
|
||||||
|
WORKDIR /package-grafana
|
||||||
|
|
||||||
|
RUN cp ./msigenerator/cache/nssm-2.24.zip /tmp/cache
|
||||||
|
|
||||||
|
RUN cd msigenerator && python3 generator/build.py
|
29
scripts/build/ci-msi-build/ci-msi-build-ee.sh
Executable file
@ -0,0 +1,29 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
WORKING_DIRECTORY=$(pwd)
|
||||||
|
DIST_DIRECTORY="$WORKING_DIRECTORY/enterprise-dist"
|
||||||
|
# copy zip file to /tmp/dist
|
||||||
|
mkdir -p /tmp/dist
|
||||||
|
cp ./enterprise-dist/*.zip /tmp/dist
|
||||||
|
echo "Contents of /tmp/dist"
|
||||||
|
ls -al /tmp/dist
|
||||||
|
|
||||||
|
# nssm download has been unreliable, use a cached copy of it
|
||||||
|
echo "Caching NSSM"
|
||||||
|
mkdir -p /tmp/cache
|
||||||
|
cp ./scripts/build/ci-msi-build/msigenerator/cache/nssm-2.24.zip /tmp/cache
|
||||||
|
|
||||||
|
cd ./scripts/build/ci-msi-build/msigenerator
|
||||||
|
echo "Building MSI"
|
||||||
|
python3 generator/build.py "$@"
|
||||||
|
chmod a+x /tmp/scratch/*.msi
|
||||||
|
echo "MSI: Copy to $DIST_DIRECTORY"
|
||||||
|
cp /tmp/scratch/*.msi "$DIST_DIRECTORY"
|
||||||
|
echo "MSI: Generate SHA256"
|
||||||
|
MSI_FILE=$(ls "${DIST_DIRECTORY}"/*.msi)
|
||||||
|
SHA256SUM=$(sha256sum "$MSI_FILE" | cut -f1 -d' ')
|
||||||
|
echo "$SHA256SUM" > "$MSI_FILE.sha256"
|
||||||
|
echo "MSI: SHA256 file content:"
|
||||||
|
cat "$MSI_FILE.sha256"
|
||||||
|
echo "MSI: contents of $DIST_DIRECTORY"
|
||||||
|
ls -al "$DIST_DIRECTORY"
|
@ -10,7 +10,7 @@ ls -al /tmp/dist
|
|||||||
# nssm download has been unreliable, use a cached copy of it
|
# nssm download has been unreliable, use a cached copy of it
|
||||||
echo "Caching NSSM"
|
echo "Caching NSSM"
|
||||||
mkdir -p /tmp/cache
|
mkdir -p /tmp/cache
|
||||||
cp ./scripts/build/ci-msi-build/oss/cache/nssm-2.24.zip /tmp/cache
|
cp ./scripts/build/ci-msi-build/msigenerator/cache/nssm-2.24.zip /tmp/cache
|
||||||
# a build can be specified, which will be pulled down
|
# a build can be specified, which will be pulled down
|
||||||
#python3 generator/build.py --build 5.4.3
|
#python3 generator/build.py --build 5.4.3
|
||||||
#echo "LIGHT config"
|
#echo "LIGHT config"
|
||||||
@ -18,7 +18,7 @@ cp ./scripts/build/ci-msi-build/oss/cache/nssm-2.24.zip /tmp/cache
|
|||||||
#cat /home/xclient/wix/light.exe.config
|
#cat /home/xclient/wix/light.exe.config
|
||||||
#cp ./scripts/build/ci-msi-build/oss/light.exe.config /home/xclient/wix/light.exe.config
|
#cp ./scripts/build/ci-msi-build/oss/light.exe.config /home/xclient/wix/light.exe.config
|
||||||
#cat /home/xclient/wix/light.exe.config
|
#cat /home/xclient/wix/light.exe.config
|
||||||
cd ./scripts/build/ci-msi-build/oss
|
cd ./scripts/build/ci-msi-build/msigenerator
|
||||||
echo "Building MSI"
|
echo "Building MSI"
|
||||||
python3 generator/build.py "$@"
|
python3 generator/build.py "$@"
|
||||||
chmod a+x /tmp/scratch/*.msi
|
chmod a+x /tmp/scratch/*.msi
|
||||||
|
@ -103,7 +103,7 @@ def remove_long_paths():
|
|||||||
print('Skipped: {}'.format(file))
|
print('Skipped: {}'.format(file))
|
||||||
|
|
||||||
|
|
||||||
def build_oss(zip_file, extracted_name, PRODUCT_VERSION, config, features):
|
def build_msi(zip_file, extracted_name, PRODUCT_VERSION, grafana_hash, config, features, is_enterprise):
|
||||||
# keep reference to source directory, will need to switch back and
|
# keep reference to source directory, will need to switch back and
|
||||||
# forth during the process
|
# forth during the process
|
||||||
src_dir = os.getcwd()
|
src_dir = os.getcwd()
|
||||||
@ -112,6 +112,7 @@ def build_oss(zip_file, extracted_name, PRODUCT_VERSION, config, features):
|
|||||||
os.mkdir('/tmp/a')
|
os.mkdir('/tmp/a')
|
||||||
target_dir_name = '/tmp/a'
|
target_dir_name = '/tmp/a'
|
||||||
extract_zip(zip_file, target_dir_name)
|
extract_zip(zip_file, target_dir_name)
|
||||||
|
os.system('ls -al /tmp/a')
|
||||||
# the zip file contains a version, which will not work when upgrading,
|
# the zip file contains a version, which will not work when upgrading,
|
||||||
# and ends up with paths longer
|
# and ends up with paths longer
|
||||||
# than light.exe can parse (windows issue)
|
# than light.exe can parse (windows issue)
|
||||||
@ -229,8 +230,17 @@ def build_oss(zip_file, extracted_name, PRODUCT_VERSION, config, features):
|
|||||||
os.system(cmd)
|
os.system(cmd)
|
||||||
except Exception as ex:
|
except Exception as ex:
|
||||||
print(ex)
|
print(ex)
|
||||||
|
|
||||||
|
hash = ''
|
||||||
|
if grafana_hash:
|
||||||
|
hash = '-{}'.format(grafana_hash)
|
||||||
|
|
||||||
# copy to scratch with version included
|
# copy to scratch with version included
|
||||||
msi_filename = '/tmp/scratch/{}.windows-amd64.msi'.format(extracted_name)
|
msi_filename = '/tmp/scratch/grafana-{}{}.windows-amd64.msi'.format(PRODUCT_VERSION, hash)
|
||||||
|
|
||||||
|
if is_enterprise:
|
||||||
|
msi_filename = '/tmp/scratch/grafana-enterprise-{}{}.windows-amd64.msi'.format(PRODUCT_VERSION, hash)
|
||||||
|
|
||||||
shutil.copy2('grafana.msi', msi_filename)
|
shutil.copy2('grafana.msi', msi_filename)
|
||||||
os.system('ls -al /tmp/scratch')
|
os.system('ls -al /tmp/scratch')
|
||||||
print('LIGHT COMPLETE')
|
print('LIGHT COMPLETE')
|
||||||
@ -238,25 +248,36 @@ def build_oss(zip_file, extracted_name, PRODUCT_VERSION, config, features):
|
|||||||
# extract_dir.cleanup()
|
# extract_dir.cleanup()
|
||||||
|
|
||||||
|
|
||||||
def main(file_loader, env, grafana_version, zip_file, extracted_name):
|
def main(file_loader, env, grafana_version, grafana_hash, zip_file, extracted_name, is_enterprise):
|
||||||
UPGRADE_VERSION = OSS_UPGRADE_VERSION
|
UPGRADE_VERSION = OSS_UPGRADE_VERSION
|
||||||
GRAFANA_VERSION = grafana_version
|
GRAFANA_VERSION = grafana_version
|
||||||
PRODUCT_NAME = OSS_PRODUCT_NAME
|
PRODUCT_TITLE = OSS_PRODUCT_NAME
|
||||||
|
PRODUCT_NAME = 'GrafanaOSS'
|
||||||
# PRODUCT_VERSION=GRAFANA_VERSION
|
# PRODUCT_VERSION=GRAFANA_VERSION
|
||||||
# MSI version cannot have anything other
|
# MSI version cannot have anything other
|
||||||
# than a x.x.x.x format, numbers only
|
# than a x.x.x.x format, numbers only
|
||||||
PRODUCT_VERSION = GRAFANA_VERSION.split('-')[0]
|
PRODUCT_VERSION = GRAFANA_VERSION.split('-')[0]
|
||||||
|
LICENSE = 'LICENSE.rtf'
|
||||||
|
|
||||||
|
|
||||||
|
if is_enterprise:
|
||||||
|
UPGRADE_VERSION = ENTERPRISE_UPGRADE_VERSION
|
||||||
|
PRODUCT_TITLE = ENTERPRISE_PRODUCT_NAME
|
||||||
|
PRODUCT_NAME = 'GrafanaEnterprise'
|
||||||
|
LICENSE = 'EE_LICENSE.rtf'
|
||||||
|
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
'grafana_version': PRODUCT_VERSION,
|
'grafana_version': PRODUCT_VERSION,
|
||||||
'upgrade_code': UPGRADE_VERSION,
|
'upgrade_code': UPGRADE_VERSION,
|
||||||
'product_name': PRODUCT_NAME,
|
'product_name': PRODUCT_NAME,
|
||||||
'manufacturer': 'Grafana Labs'
|
'manufacturer': 'Grafana Labs',
|
||||||
|
'license': LICENSE
|
||||||
}
|
}
|
||||||
features = [
|
features = [
|
||||||
{
|
{
|
||||||
'name': 'GrafanaOSS',
|
'name': PRODUCT_NAME,
|
||||||
'title': PRODUCT_NAME,
|
'title': PRODUCT_TITLE,
|
||||||
'component_groups': [
|
'component_groups': [
|
||||||
{
|
{
|
||||||
'ref_id': 'GrafanaX64',
|
'ref_id': 'GrafanaX64',
|
||||||
@ -275,7 +296,7 @@ def main(file_loader, env, grafana_version, zip_file, extracted_name):
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
build_oss(zip_file, extracted_name, PRODUCT_VERSION, config, features)
|
build_msi(zip_file, extracted_name, PRODUCT_VERSION, grafana_hash, config, features, is_enterprise)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
@ -289,13 +310,6 @@ if __name__ == '__main__':
|
|||||||
'--premium',
|
'--premium',
|
||||||
help='Include premium plugins',
|
help='Include premium plugins',
|
||||||
dest='premium', action='store_true')
|
dest='premium', action='store_true')
|
||||||
parser.add_argument(
|
|
||||||
'-e',
|
|
||||||
'--enterprise',
|
|
||||||
help='Use Enterprise build',
|
|
||||||
dest='enterprise',
|
|
||||||
action='store_true')
|
|
||||||
parser.set_defaults(enterprise=False, premium=False)
|
|
||||||
parser.add_argument('-b', '--build', help='build to download')
|
parser.add_argument('-b', '--build', help='build to download')
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
file_loader = FileSystemLoader('templates')
|
file_loader = FileSystemLoader('templates')
|
||||||
@ -312,17 +326,17 @@ if __name__ == '__main__':
|
|||||||
else:
|
else:
|
||||||
grafana_version, grafana_hash, is_enterprise = detect_version(DIST_LOCATION)
|
grafana_version, grafana_hash, is_enterprise = detect_version(DIST_LOCATION)
|
||||||
|
|
||||||
# check for enterprise flag
|
|
||||||
if args.enterprise:
|
|
||||||
grafana_version = 'enterprise-{}'.format(args.build)
|
|
||||||
#
|
|
||||||
print('Detected Version: {}'.format(grafana_version))
|
print('Detected Version: {}'.format(grafana_version))
|
||||||
if grafana_hash:
|
if grafana_hash:
|
||||||
print('Detected Hash: {}'.format(grafana_hash))
|
print('Detected Hash: {}'.format(grafana_hash))
|
||||||
print('Enterprise: {}'.format(is_enterprise))
|
print('Enterprise: {}'.format(is_enterprise))
|
||||||
if is_enterprise:
|
if is_enterprise:
|
||||||
zip_file = '{}/grafana-enterprise-{}.windows-amd64.zip'.format(DIST_LOCATION, grafana_version)
|
if grafana_hash:
|
||||||
extracted_name = 'grafana-enterprise-{}'.format(grafana_version)
|
zip_file = '{}/grafana-enterprise-{}-{}.windows-amd64.zip'.format(DIST_LOCATION, grafana_version, grafana_hash)
|
||||||
|
extracted_name = 'grafana-{}-{}'.format(grafana_version, grafana_hash)
|
||||||
|
else:
|
||||||
|
zip_file = '{}/grafana-enterprise-{}.windows-amd64.zip'.format(DIST_LOCATION, grafana_version)
|
||||||
|
extracted_name = 'grafana-{}'.format(grafana_version)
|
||||||
else:
|
else:
|
||||||
# the file can have a build hash
|
# the file can have a build hash
|
||||||
if grafana_hash:
|
if grafana_hash:
|
||||||
@ -336,4 +350,4 @@ if __name__ == '__main__':
|
|||||||
|
|
||||||
if not os.path.isfile(zip_file):
|
if not os.path.isfile(zip_file):
|
||||||
zip_file = get_zip(grafana_version, zip_file)
|
zip_file = get_zip(grafana_version, zip_file)
|
||||||
main(file_loader, env, grafana_version, zip_file, extracted_name)
|
main(file_loader, env, grafana_version, grafana_hash, zip_file, extracted_name, is_enterprise)
|
@ -50,13 +50,18 @@ def detect_version(dist_path):
|
|||||||
print('Skipping detection, no matches')
|
print('Skipping detection, no matches')
|
||||||
return
|
return
|
||||||
firstFile = fileList[0]
|
firstFile = fileList[0]
|
||||||
p1 = re.search(r'grafana-(\d\.\d\.\d)\.windows-amd64.zip$', firstFile)
|
p1 = re.search(r'grafana-(enterprise-)?(\d\.\d\.\d)-(.+)\.windows-amd64\.zip$', firstFile)
|
||||||
p2 = re.search(r'grafana-(\d\.\d\.\d)-(.*)\.windows-amd64.zip$', firstFile)
|
p2 = re.search(r'grafana-(enterprise-)?(\d\.\d\.\d)\.windows-amd64\.zip$', firstFile)
|
||||||
if p1:
|
if p1:
|
||||||
detectedVersion = p1.group(1)
|
detectedVersion = p1.group(2)
|
||||||
|
detectedHash = p1.group(3)
|
||||||
|
if p1.group(1) == 'enterprise-':
|
||||||
|
isEnterprise = True
|
||||||
if p2:
|
if p2:
|
||||||
detectedVersion = p2.group(1)
|
detectedVersion = p2.group(2)
|
||||||
detectedHash = p2.group(2)
|
if p2.group(1) == 'enterprise-':
|
||||||
|
isEnterprise = True
|
||||||
|
|
||||||
return detectedVersion, detectedHash, isEnterprise
|
return detectedVersion, detectedHash, isEnterprise
|
||||||
|
|
||||||
#if os.path.isdir(dist_path + 'enterprise-dist'):
|
#if os.path.isdir(dist_path + 'enterprise-dist'):
|
Before Width: | Height: | Size: 601 KiB After Width: | Height: | Size: 601 KiB |
Before Width: | Height: | Size: 261 KiB After Width: | Height: | Size: 261 KiB |
Before Width: | Height: | Size: 254 KiB After Width: | Height: | Size: 254 KiB |
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 112 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 112 KiB |
@ -0,0 +1,33 @@
|
|||||||
|
{\rtf1\ansi\ansicpg1252\uc0\stshfdbch0\stshfloch0\stshfhich0\stshfbi0\deff0\adeff0{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f2\fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}{\f3\fnil\fcharset0 Courier New;}}{
|
||||||
|
\colortbl;\red0\green0\blue0;}{\stylesheet{\s0\snext0\sqformat\spriority0\fi0\sb0\sa0\aspalpha\aspnum\adjustright\widctlpar\ltrpar\li0\lin0\ri0\rin0\ql\faauto\sl240\slmult1\rtlch\ab0\ai0\af3\afs24\ltrch\b0\i0\fs24\loch\af3\dbch\af3\hich\f3\strike0\ulnone\cf1 Normal;}{\s1\sbasedon0\snext0\styrsid15694742
|
||||||
|
\sqformat\spriority0\keepn\fi0\sb240\sa60\aspalpha\aspnum\adjustright\widctlpar\ltrpar\li0\lin0\ri0\rin0\ql\faauto\sl240\slmult1\rtlch\ab\ai0\af2\afs32\ltrch\b\i0\fs32\loch\af2\dbch\af2\hich\f2\strike0\ulnone\cf1 heading 1;}{\s2\sbasedon0\snext0\styrsid15694742
|
||||||
|
\sqformat\spriority0\keepn\fi0\sb240\sa60\aspalpha\aspnum\adjustright\widctlpar\ltrpar\li0\lin0\ri0\rin0\ql\faauto\sl240\slmult1\rtlch\ab\ai\af2\afs28\ltrch\b\i\fs28\loch\af2\dbch\af2\hich\f2\strike0\ulnone\cf1 heading 2;}{\s3\sbasedon0\snext0\styrsid15694742
|
||||||
|
\sqformat\spriority0\keepn\fi0\sb240\sa60\aspalpha\aspnum\adjustright\widctlpar\ltrpar\li0\lin0\ri0\rin0\ql\faauto\sl240\slmult1\rtlch\ab\ai0\af2\afs26\ltrch\b\i0\fs26\loch\af2\dbch\af2\hich\f2\strike0\ulnone\cf1 heading 3;}{\s4\sbasedon0\snext0\styrsid15694742
|
||||||
|
\sqformat\spriority0\keepn\fi0\sb240\sa60\aspalpha\aspnum\adjustright\widctlpar\ltrpar\li0\lin0\ri0\rin0\ql\faauto\sl240\slmult1\rtlch\ab\ai0\af3\afs28\ltrch\b\i0\fs28\loch\af3\dbch\af3\hich\f3\strike0\ulnone\cf1 heading 4;}{\s5\sbasedon0\snext0\styrsid15694742
|
||||||
|
\sqformat\spriority0\fi0\sb240\sa60\aspalpha\aspnum\adjustright\widctlpar\ltrpar\li0\lin0\ri0\rin0\ql\faauto\sl240\slmult1\rtlch\ab\ai\af3\afs26\ltrch\b\i\fs26\loch\af3\dbch\af3\hich\f3\strike0\ulnone\cf1 heading 5;}{\s6\sbasedon0\snext0\styrsid15694742\sqformat\spriority0\fi0\sb240\sa60
|
||||||
|
\aspalpha\aspnum\adjustright\widctlpar\ltrpar\li0\lin0\ri0\rin0\ql\faauto\sl240\slmult1\rtlch\ab\ai0\af3\afs22\ltrch\b\i0\fs22\loch\af3\dbch\af3\hich\f3\strike0\ulnone\cf1 heading 6;}{\*\cs10\additive\ssemihidden\spriority0 Default Paragraph Font;}{\s15\sbasedon0\snext15\styrsid15694742
|
||||||
|
\sqformat\spriority0\fi0\sb240\sa60\aspalpha\aspnum\adjustright\widctlpar\ltrpar\li0\lin0\ri0\rin0\qc\faauto\sl240\slmult1\rtlch\ab\ai0\af2\afs32\ltrch\b\i0\fs32\loch\af2\dbch\af2\hich\f2\strike0\ulnone\cf1 Title;}{\s16\sbasedon0\snext16\styrsid15694742\sqformat\spriority0\fi0\sb0\sa60
|
||||||
|
\aspalpha\aspnum\adjustright\widctlpar\ltrpar\li0\lin0\ri0\rin0\qc\faauto\sl240\slmult1\rtlch\ab0\ai0\af2\afs24\ltrch\b0\i0\fs24\loch\af2\dbch\af2\hich\f2\strike0\ulnone\cf1 Subtitle;}}{\*\rsidtbl\rsid10976062}{\*\generator Aspose.Words for Java 13.12.0.0;}{\info\version1\edmins0\nofpages1\nofwords0\nofchars0\nofcharsws0}{\mmathPr\mbrkBin0\mbrkBinSub0\mdefJc1\mdispDef1\minterSp0\mintLim0\mintraSp0\mlMargin0\mmathFont0\mnaryLim1\mpostSp0\mpreSp0\mrMargin0\msmallFrac0\mwrapIndent1440\mwrapRight0}
|
||||||
|
\deflang1033\deflangfe2052\adeflang1025\jexpand\showxmlerrors1\validatexml1{\*\wgrffmtfilter 013f}\viewkind1\viewscale100\fet0\ftnbj\aenddoc\ftnrstcont\aftnrstcont\ftnnar\aftnnrlc\widowctrl\nospaceforul\nolnhtadjtbl\alntblind\lyttblrtgr\dntblnsbdb\noxlattoyen
|
||||||
|
\wrppunct\nobrkwrptbl\expshrtn\snaptogridincell\asianbrkrule\htmautsp\noultrlspc\useltbaln\splytwnine\ftnlytwnine\lytcalctblwd\allowfieldendsel\lnbrkrule\nouicompat\nofeaturethrottle1\formshade\nojkernpunct\dghspace180\dgvspace180\dghorigin1800\dgvorigin1440\dghshow1\dgvshow1
|
||||||
|
\dgmargin\pgbrdrhead\pgbrdrfoot\sectd\sectlinegrid360\pgwsxn12240\pghsxn15840\marglsxn1800\margrsxn1800\margtsxn1440\margbsxn1440\guttersxn0\headery708\footery708\colsx708\ltrsect\pard\plain\itap0\s0\ilvl0\fi0\sb0\sa0\aspalpha\aspnum\adjustright\brdrt\brdrl\brdrb\brdrr\brdrbtw\brdrbar
|
||||||
|
\widctlpar\ltrpar\li0\lin0\ri0\rin0\ql\faauto\sl240\slmult1\rtlch\ab0\ai0\af3\afs24\ltrch\b0\i0\fs24\loch\af3\dbch\af3\hich\f3\strike0\ulnone\cf1{\rtlch\ab0\ai0\af2\afs22\ltrch\b0\i0\fs22\loch\af2\dbch\af2\hich\f2\strike0\ulnone\cf1 Placeholder}{\rtlch\ab0\ai0\af3\afs22
|
||||||
|
\ltrch\b0\i0\fs22\loch\af3\dbch\af3\hich\f3\insrsid10976062\strike0\ulnone\cf1\par}{\*\latentstyles\lsdstimax267\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef0{\lsdlockedexcept\lsdqformat1 Normal;\lsdqformat1 heading 1;\lsdsemihidden1\lsdunhideused1\lsdqformat1 heading 2;\lsdsemihidden1\lsdunhideused1\lsdqformat1 heading 3
|
||||||
|
;\lsdsemihidden1\lsdunhideused1\lsdqformat1 heading 4;\lsdsemihidden1\lsdunhideused1\lsdqformat1 heading 5;\lsdsemihidden1\lsdunhideused1\lsdqformat1 heading 6;\lsdsemihidden1\lsdunhideused1\lsdqformat1 heading 7;\lsdsemihidden1\lsdunhideused1\lsdqformat1 heading 8
|
||||||
|
;\lsdsemihidden1\lsdunhideused1\lsdqformat1 heading 9;\lsdsemihidden1\lsdunhideused1\lsdqformat1 caption;\lsdqformat1 Title;\lsdqformat1 Subtitle;\lsdqformat1 Strong;\lsdqformat1 Emphasis;\lsdsemihidden1\lsdpriority99 Placeholder Text;\lsdqformat1\lsdpriority1 No Spacing
|
||||||
|
;\lsdpriority60 Light Shading;\lsdpriority61 Light List;\lsdpriority62 Light Grid;\lsdpriority63 Medium Shading 1;\lsdpriority64 Medium Shading 2;\lsdpriority65 Medium List 1;\lsdpriority66 Medium List 2;\lsdpriority67 Medium Grid 1;\lsdpriority68 Medium Grid 2
|
||||||
|
;\lsdpriority69 Medium Grid 3;\lsdpriority70 Dark List;\lsdpriority71 Colorful Shading;\lsdpriority72 Colorful List;\lsdpriority73 Colorful Grid;\lsdpriority60 Light Shading Accent 1;\lsdpriority61 Light List Accent 1;\lsdpriority62 Light Grid Accent 1;\lsdpriority63 Medium Shading 1 Accent 1
|
||||||
|
;\lsdpriority64 Medium Shading 2 Accent 1;\lsdpriority65 Medium List 1 Accent 1;\lsdsemihidden1\lsdpriority99 Revision;\lsdqformat1\lsdpriority34 List Paragraph;\lsdqformat1\lsdpriority29 Quote;\lsdqformat1\lsdpriority30 Intense Quote;\lsdpriority66 Medium List 2 Accent 1
|
||||||
|
;\lsdpriority67 Medium Grid 1 Accent 1;\lsdpriority68 Medium Grid 2 Accent 1;\lsdpriority69 Medium Grid 3 Accent 1;\lsdpriority70 Dark List Accent 1;\lsdpriority71 Colorful Shading Accent 1;\lsdpriority72 Colorful List Accent 1;\lsdpriority73 Colorful Grid Accent 1
|
||||||
|
;\lsdpriority60 Light Shading Accent 2;\lsdpriority61 Light List Accent 2;\lsdpriority62 Light Grid Accent 2;\lsdpriority63 Medium Shading 1 Accent 2;\lsdpriority64 Medium Shading 2 Accent 2;\lsdpriority65 Medium List 1 Accent 2;\lsdpriority66 Medium List 2 Accent 2
|
||||||
|
;\lsdpriority67 Medium Grid 1 Accent 2;\lsdpriority68 Medium Grid 2 Accent 2;\lsdpriority69 Medium Grid 3 Accent 2;\lsdpriority70 Dark List Accent 2;\lsdpriority71 Colorful Shading Accent 2;\lsdpriority72 Colorful List Accent 2;\lsdpriority73 Colorful Grid Accent 2
|
||||||
|
;\lsdpriority60 Light Shading Accent 3;\lsdpriority61 Light List Accent 3;\lsdpriority62 Light Grid Accent 3;\lsdpriority63 Medium Shading 1 Accent 3;\lsdpriority64 Medium Shading 2 Accent 3;\lsdpriority65 Medium List 1 Accent 3;\lsdpriority66 Medium List 2 Accent 3
|
||||||
|
;\lsdpriority67 Medium Grid 1 Accent 3;\lsdpriority68 Medium Grid 2 Accent 3;\lsdpriority69 Medium Grid 3 Accent 3;\lsdpriority70 Dark List Accent 3;\lsdpriority71 Colorful Shading Accent 3;\lsdpriority72 Colorful List Accent 3;\lsdpriority73 Colorful Grid Accent 3
|
||||||
|
;\lsdpriority60 Light Shading Accent 4;\lsdpriority61 Light List Accent 4;\lsdpriority62 Light Grid Accent 4;\lsdpriority63 Medium Shading 1 Accent 4;\lsdpriority64 Medium Shading 2 Accent 4;\lsdpriority65 Medium List 1 Accent 4;\lsdpriority66 Medium List 2 Accent 4
|
||||||
|
;\lsdpriority67 Medium Grid 1 Accent 4;\lsdpriority68 Medium Grid 2 Accent 4;\lsdpriority69 Medium Grid 3 Accent 4;\lsdpriority70 Dark List Accent 4;\lsdpriority71 Colorful Shading Accent 4;\lsdpriority72 Colorful List Accent 4;\lsdpriority73 Colorful Grid Accent 4
|
||||||
|
;\lsdpriority60 Light Shading Accent 5;\lsdpriority61 Light List Accent 5;\lsdpriority62 Light Grid Accent 5;\lsdpriority63 Medium Shading 1 Accent 5;\lsdpriority64 Medium Shading 2 Accent 5;\lsdpriority65 Medium List 1 Accent 5;\lsdpriority66 Medium List 2 Accent 5
|
||||||
|
;\lsdpriority67 Medium Grid 1 Accent 5;\lsdpriority68 Medium Grid 2 Accent 5;\lsdpriority69 Medium Grid 3 Accent 5;\lsdpriority70 Dark List Accent 5;\lsdpriority71 Colorful Shading Accent 5;\lsdpriority72 Colorful List Accent 5;\lsdpriority73 Colorful Grid Accent 5
|
||||||
|
;\lsdpriority60 Light Shading Accent 6;\lsdpriority61 Light List Accent 6;\lsdpriority62 Light Grid Accent 6;\lsdpriority63 Medium Shading 1 Accent 6;\lsdpriority64 Medium Shading 2 Accent 6;\lsdpriority65 Medium List 1 Accent 6;\lsdpriority66 Medium List 2 Accent 6
|
||||||
|
;\lsdpriority67 Medium Grid 1 Accent 6;\lsdpriority68 Medium Grid 2 Accent 6;\lsdpriority69 Medium Grid 3 Accent 6;\lsdpriority70 Dark List Accent 6;\lsdpriority71 Colorful Shading Accent 6;\lsdpriority72 Colorful List Accent 6;\lsdpriority73 Colorful Grid Accent 6
|
||||||
|
;\lsdqformat1\lsdpriority19 Subtle Emphasis;\lsdqformat1\lsdpriority21 Intense Emphasis;\lsdqformat1\lsdpriority31 Subtle Reference;\lsdqformat1\lsdpriority32 Intense Reference;\lsdqformat1\lsdpriority33 Book Title;\lsdsemihidden1\lsdunhideused1\lsdpriority37 Bibliography
|
||||||
|
;\lsdsemihidden1\lsdunhideused1\lsdqformat1\lsdpriority39 TOC Heading;}}}
|
@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
<Icon Id="icon.ico" SourceFile="grafana_icon.ico"/>
|
<Icon Id="icon.ico" SourceFile="grafana_icon.ico"/>
|
||||||
|
|
||||||
<WixVariable Id="WixUILicenseRtf" Value="LICENSE.rtf" />
|
<WixVariable Id="WixUILicenseRtf" Value="{{config.license}}" />
|
||||||
<WixVariable Id="WixUIBannerBmp" Value="grafana_top_banner_white.bmp" />
|
<WixVariable Id="WixUIBannerBmp" Value="grafana_top_banner_white.bmp" />
|
||||||
<WixVariable Id="WixUIDialogBmp" Value="grafana_dialog_background.bmp" />
|
<WixVariable Id="WixUIDialogBmp" Value="grafana_dialog_background.bmp" />
|
||||||
|
|
11
scripts/build/ci-msi-build/testbuild.sh
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
_image="ee-msi-build"
|
||||||
|
_container="ee-build"
|
||||||
|
|
||||||
|
docker build -t $_image .
|
||||||
|
|
||||||
|
docker run --rm -d --name $_container $_image sleep 100
|
||||||
|
docker cp $_container:/tmp/scratch .
|
||||||
|
docker stop $_container
|
||||||
|
|