-
Notifications
You must be signed in to change notification settings - Fork 4
/
.gitlab-ci.yml
106 lines (100 loc) · 3.35 KB
/
.gitlab-ci.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
variables:
GIT_SUBMODULE_STRATEGY: recursive
stages:
- download
- build
- ZipUp
#
# Download CBACnet Stack libaries
# -----------------------------------------------------------------------------
# How to download artifacts from jobs in Gitlab CI https://docs.gitlab.com/ee/api/jobs.html#download-the-artifacts-archive
# Note: the SETTING_PRIVATE_TOKEN parameter is a enviment variable, generated by Steven's user.
#
Download BACnet Stack Libaries:
stage: download
tags:
- docker
image: alpine:latest
variables:
GIT_SUBMODULE_STRATEGY: none
script:
# Install Zip and curl
- "apk --no-cache add unzip curl"
- 'curl --location --output CASBACnetStackLibs.zip --header "PRIVATE-TOKEN: $SETTING_PRIVATE_TOKEN" "https://gitlab.com/api/v4/projects/7281208/jobs/artifacts/master/download?job=Windows%20Release%20Win32%20CASBACnetStack%20LIB&job_token=$CI_JOB_TOKEN"'
- unzip CASBACnetStackLibs.zip && rm -f CASBACnetStackLibs.zip
- 'curl --location --output CASBACnetStackLibs.zip --header "PRIVATE-TOKEN: $SETTING_PRIVATE_TOKEN" "https://gitlab.com/api/v4/projects/7281208/jobs/artifacts/master/download?job=Linux-Ubuntu%20Release%20x64%20CASBACnetStack&job_token=$CI_JOB_TOKEN"'
- unzip CASBACnetStackLibs.zip && rm -f CASBACnetStackLibs.zip
- ls -ls bin/
artifacts:
expire_in: 1 days
paths:
- bin/*.lib
- bin/*.a
# Build the windows version
Windows Win32 Release:
stage: build
tags:
- windows
- msvs
before_script:
# Add MSBuild.exe to path
- set PATH=%PATH%;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin
# Update the CIBuildVersion.cs
- "echo const int CI_PIPELINE_IID = %CI_PIPELINE_IID% >BACnetClientExample/CIBuildSettings.h"
- type BACnetClientExample\CIBuildVersion.h
script:
# Create the bin directory if it does not exist
- cd BACnetClientExample
# Build and package the project in an apk for android
- msbuild /p:Configuration=Release /p:Platform="x86"
- cd ..\bin
- dir
artifacts:
expire_in: 1 days
paths:
- bin/BACnetClientExample_Win32_Release.exe
dependencies:
- Download BACnet Stack Libaries
# Build the linux 64bit version
Linux 64Bit Release:
stage: build
tags:
- docker
image: ssmethurst/ubuntudev-18_04:latest
before_script:
# Update the CIBuildVersion.cs
- echo -e "const int CI_PIPELINE_IID = $CI_PIPELINE_IID\n" >BACnetClientExample/CIBuildSettings.h
# debug info
- "gcc -v"
script:
- "make"
- "make install"
artifacts:
expire_in: 1 days
paths:
- bin/BACnetClientExampleCPP_linux_x64_Release
dependencies:
- Download BACnet Stack Libaries
# CreateZip
Create Zip:
stage: ZipUp
tags:
- docker
image: alpine:latest
variables:
GIT_SUBMODULE_STRATEGY: none
only:
- master
dependencies:
- Linux 64Bit Release
- Windows Win32 Release
script:
# Install Zip
- "apk --no-cache add zip"
# Remove the old zip if it exists for some reason
- "rm -f BACnetClientExampleCPP_build$CIPIPELINE_IID.zip"
# Add all the compiled libaries from other jobs.
- "zip BACnetClientExampleCPP_build$CI_PIPELINE_IID.zip -r9 bin/BACnetClientExampleCPP_linux_x64_Release bin/BACnetClientExample_Win32_Release.exe"
artifacts:
paths:
- BACnetClientExampleCPP_build$CI_PIPELINE_IID.zip