-
Notifications
You must be signed in to change notification settings - Fork 109
/
Copy path.gitlab-ci.yml
116 lines (102 loc) · 3.46 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
107
108
109
110
111
112
113
114
115
116
include:
- project: 'gnome/citemplates'
file: 'flatpak/flatpak_ci_initiative.yml'
- component: gitlab.gnome.org/GNOME/citemplates/release-service@master
inputs:
dist-job-name: "flatpak"
tarball-artifact-path: "${TARBALL_ARTIFACT_PATH}"
stages:
- lint
- build
- deploy
- image
variables:
BUNDLE: "org.gnome.Evince.flatpak"
MANIFEST_PATH: "build-aux/flatpak/org.gnome.Evince.json"
MESON_ARGS: "-Dnautilus=false -Dprofile=devel"
FLATPAK_MODULE: "evince"
APP_ID: "org.gnome.Evince.Devel"
RUNTIME_REPO: "https://nightly.gnome.org/gnome-nightly.flatpakrepo"
TARBALL_ARTIFACT_PATH: ".flatpak-builder/build/${FLATPAK_MODULE}/_flatpak_build/meson-dist/${CI_PROJECT_NAME}-${CI_COMMIT_TAG}.tar.xz"
MESON_BUILD_DIR: _build
editorconfig:
stage: lint
image: alpine:edge
script:
- apk add editorconfig-checker
- ec --disable-indentation --exclude '^.git/|cut-n-paste'
allow_failure: true
meson:
image: registry.gitlab.gnome.org/gnome/evince/x86_64-ubuntu:gtk4
stage: build
script:
- >
meson
-Dlibhandy:examples=false -Dlibhandy:tests=false -Dlibhandy:vapi=false
-Dlibhandy:glade_catalog=disabled -Dlibhandy:introspection=disabled
"${MESON_BUILD_DIR}"
- ninja -C "${MESON_BUILD_DIR}" all
artifacts:
when: on_failure
paths:
- "${MESON_BUILD_DIR}/meson-logs/meson-log.txt"
expire_in: 2 days
meson-internal-synctex:
image: registry.gitlab.gnome.org/gnome/evince/x86_64-ubuntu:gtk4
stage: build
script:
- meson -Dinternal_synctex=true "${MESON_BUILD_DIR}"
- ninja -C "${MESON_BUILD_DIR}" all
artifacts:
when: on_failure
paths:
- "${MESON_BUILD_DIR}/meson-logs/meson-log.txt"
expire_in: 2 days
flatpak:
extends: .flatpak
stage: build
nightly:
extends: .publish_nightly
dependencies: ['flatpak']
needs: ['flatpak']
pages:
image: registry.gitlab.gnome.org/gnome/evince/x86_64-ubuntu:gtk4
stage: deploy
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PROJECT_NAMESPACE == "GNOME"
script:
- meson setup "${MESON_BUILD_DIR}"
- ninja -C "${MESON_BUILD_DIR}"
- mkdir public
- mv "${MESON_BUILD_DIR}"/help/reference/libdocument/libevdocument public/document/
- mv "${MESON_BUILD_DIR}"/help/reference/libview/libevview public/view/
artifacts:
paths:
- public/
expire_in: 2 days
update image:
variables:
IMAGE_TAG: $CI_REGISTRY_IMAGE/x86_64-ubuntu
# Tell 'docker:dind' to enable TLS (recommended)
# and generate certificates in the specified directory.
DOCKER_TLS_CERTDIR: "/certs"
STORAGE_DRIVER: vfs
BUILDAH_FORMAT: docker
BUILDAH_ISOLATION: chroot
image: alpine:latest
stage: image
script:
- apk add --no-cache buildah runc
- buildah bud --tag $IMAGE_TAG -f .gitlab-ci/ubuntu.Dockerfile
- buildah tag $IMAGE_TAG "$IMAGE_TAG:v$CI_JOB_ID"
- buildah login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- buildah push --creds $CI_REGISTRY_USER:$CI_REGISTRY_PASSWORD $IMAGE_TAG
- buildah push --creds $CI_REGISTRY_USER:$CI_REGISTRY_PASSWORD "$IMAGE_TAG:v$CI_JOB_ID"
when: manual
only:
- web
- main
- evince-next
except:
variables:
- $CI_PROJECT_NAMESPACE != "GNOME"