-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy path.gitlab-ci.yml
More file actions
151 lines (139 loc) · 4.43 KB
/
.gitlab-ci.yml
File metadata and controls
151 lines (139 loc) · 4.43 KB
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
stages:
- build
- release
cache:
paths:
- node_modules/
build_packagedev_mac:
rules:
- when: never # Mac build disabled; to re-enable: use - if: $CI_COMMIT_TAG
image: node
stage: build
tags:
- arm64
variables:
ELECTRON_BUILDER_CACHE: '${CI_PROJECT_DIR}/.cache/electron-builder'
CERTIFICATE_PASSWORD: '${CERTIFICATE_PASSWORD}'
before_script:
- apt-get update
- apt-get install -y libx11-dev libxkbfile-dev libsecret-1-dev
- dpkg --add-architecture arm64
- apt-get update
- apt-get install -y wine64
- echo "$CERTIFICATE_BASE64" | base64 -d > certificate.pfx
script:
- export CERTIFICATE_PASSWORD=${CERTIFICATE_PASSWORD}
- sed -i "s/__CERT_PASS__/${CERTIFICATE_PASSWORD}/g" package.json
- yarn install --frozen-lockfile --ignore-engines
- yarn release:mac
artifacts:
paths:
- dist/
expire_in: 4 weeks
cache:
paths:
- .cache/electron-builder
- node_modules/
build_packagedev_windows:
image: node
stage: build
only:
- tags
variables:
ELECTRON_BUILDER_CACHE: '${CI_PROJECT_DIR}/.cache/electron-builder'
CERTIFICATE_PASSWORD: '${CERTIFICATE_PASSWORD}'
before_script:
- apt-get update
- apt-get install -y libx11-dev libxkbfile-dev libsecret-1-dev
- dpkg --add-architecture i386
- apt-get update
- apt-get install -y wine64 wine32
- wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.0g-2ubuntu4_amd64.deb
- dpkg -i libssl1.1_1.1.0g-2ubuntu4_amd64.deb
# Download the certificate file from GitLab repository
#- >
#curl -L --header "PRIVATE-TOKEN: ${GITLAB_TOKEN}"
#-o certificate.pfx
#"https://git.nosi.cv/api/v4/projects/${CI_PROJECT_ID}/repository/files/certificate%2Fcertificate.pfx/raw?ref=master"
- echo "$CERTIFICATE_BASE64" | base64 -d > certificate.pfx
script:
- export CERTIFICATE_PASSWORD=${CERTIFICATE_PASSWORD}
- sed -i "s/__CERT_PASS__/${CERTIFICATE_PASSWORD}/g" package.json
- yarn install --frozen-lockfile --ignore-engines
- yarn release:win
artifacts:
paths:
- dist/
expire_in: 4 weeks
cache:
paths:
- .cache/electron-builder
- node_modules/
build_packagedev_linux:
image: node
stage: build
only:
- tags
variables:
ELECTRON_BUILDER_CACHE: '${CI_PROJECT_DIR}/.cache/electron-builder'
CERTIFICATE_PASSWORD: '${CERTIFICATE_PASSWORD}'
before_script:
- apt-get update
- apt-get install -y libx11-dev libxkbfile-dev libsecret-1-dev
script:
- export CERTIFICATE_PASSWORD=${CERTIFICATE_PASSWORD}
- sed -i "s/__CERT_PASS__/${CERTIFICATE_PASSWORD}/g" package.json
- yarn install --frozen-lockfile --ignore-engines
- yarn release:linux
artifacts:
paths:
- dist/
expire_in: 4 weeks
cache:
paths:
- .cache/electron-builder
- node_modules/
release:
stage: release
only:
- tags
image: curlimages/curl:latest
script:
- echo "Uploading artifacts to GitLab release..."
- |
for file in dist/*; do
filename=$(basename "$file" | sed 's/ /%20/g')
echo "Uploading $file..."
UPLOAD_URL="https://git.nosi.cv/api/v4/projects/${CI_PROJECT_ID}/packages/generic/electron-builder/${CI_COMMIT_TAG}/$(basename "$file")"
echo "Upload URL: $UPLOAD_URL"
if [[ -n "${GITLAB_TOKEN}" && -n "${CI_PROJECT_ID}" && -n "${CI_COMMIT_TAG}" ]]; then
curl --header "PRIVATE-TOKEN: ${GITLAB_TOKEN}" \
--upload-file "$file" \
"$UPLOAD_URL"
else
echo "Error: Missing required environment variables."
exit 1
fi
done
- echo "Creating a new release on GitLab..."
- |
curl --request POST \
--header "PRIVATE-TOKEN: ${GITLAB_TOKEN}" \
--header "Content-Type: application/json" \
--data "{
\"name\": \"Release ${CI_COMMIT_TAG}\",
\"tag_name\": \"${CI_COMMIT_TAG}\",
\"description\": \"Release for commit ${CI_COMMIT_SHA}\",
\"assets\": {
\"links\": [
{
\"name\": \"Download\",
\"url\": \"https://git.nosi.cv/api/v4/projects/${CI_PROJECT_ID}/packages/generic/electron-builder/${CI_COMMIT_TAG}\"
}
]
}
}" \
"https://git.nosi.cv/api/v4/projects/${CI_PROJECT_ID}/releases"
needs:
- build_packagedev_windows
- build_packagedev_linux