-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.gitlab-ci.yml
More file actions
66 lines (64 loc) · 3.01 KB
/
Copy path.gitlab-ci.yml
File metadata and controls
66 lines (64 loc) · 3.01 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
build-debian:
stage: build
image: debian:stable
script:
- apt-get update --yes
- apt-get install --yes apt-utils curl dpkg-dev gpg jq wget
- gpg --import $GPG_PRIVATE_KEY
- mkdir --parents public/debian
- cd public/debian
- gpg --armor --export $GPG_KEY_ID > public_key.gpg
- 'curl --header "PRIVATE-TOKEN: $PERSONAL_TOKEN" https://gitlab.com/api/v4/projects/pag-station%2Fquick-automation-devtool/releases?per_page=5 | jq -r ".[].assets.links | .[] | select((.link_type == \"package\") and (.name|endswith(\".deb\"))) | \"\(.direct_asset_url) \(.name)\"" | while read -r url name; do wget "$url" --output-document "$name"; done'
- dpkg-scanpackages --multiversion . > Packages
- gzip -k -f Packages
- apt-ftparchive release . > Release
- gpg --default-key "$GPG_KEY_ID" -abs -o - Release > Release.gpg
- gpg --default-key "$GPG_KEY_ID" --clearsign -o - Release > InRelease
artifacts:
paths:
- public/debian
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
- if: $CI_PIPELINE_SOURCE == "schedule"
build-rpm:
stage: build
image: fedora:latest
script:
- dnf install --assumeyes curl gpg jq wget rpm-sign createrepo
- export GPG_TTY=$(tty)
- gpg --import $GPG_PRIVATE_KEY
- mkdir --parents public/rpm
- cd public/rpm
- gpg --armor --export $GPG_KEY_ID > public_key.gpg
- echo "%_signature gpg" > ~/.rpmmacros
- echo "%_gpg_path /root/.gnupg" >> ~/.rpmmacros
- echo "%_gpg_name Gaëtan Faugère (Key for automated package distribution signature) <gaetan@fauge.re>" >> ~/.rpmmacros
- echo "%__gpg_sign_cmd %{__gpg} gpg --force-v3-sigs --batch --verbose --no-armor --no-secmem-warning -u $GPG_KEY_ID -sbo %{__signature_filename} --digest-algo sha256 %{__plaintext_filename}" >> ~/.rpmmacros
- 'curl --header "PRIVATE-TOKEN: $PERSONAL_TOKEN" https://gitlab.com/api/v4/projects/pag-station%2Fquick-automation-devtool/releases?per_page=5 | jq -r ".[].assets.links | .[] | select((.link_type == \"package\") and (.name|endswith(\".rpm\"))) | \"\(.direct_asset_url) \(.name)\"" | while read -r url name; do wget "$url" --output-document "$name"; done'
- rpm --import public_key.gpg
- rpm --resign *.rpm
- createrepo .
- echo "[gfaugere-packages]" > gfaugere-packages.repo
- echo "name=gfaugere packages" >> gfaugere-packages.repo
- echo "baseurl=https://gfaugere.gitlab.io/packages/rpm" >> gfaugere-packages.repo
- echo "enabled=1" >> gfaugere-packages.repo
- echo "gpgcheck=1" >> gfaugere-packages.repo
- echo "gpgkey=https://gfaugere.gitlab.io/packages/rpm/public_key.gpg" >> gfaugere-packages.repo
artifacts:
paths:
- public/rpm
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
- if: $CI_PIPELINE_SOURCE == "schedule"
pages:
needs:
- build-debian
- build-rpm
script:
- echo 'Just need a job to group together artifacts from other stages'
artifacts:
paths:
- public
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
- if: $CI_PIPELINE_SOURCE == "schedule"