-
Notifications
You must be signed in to change notification settings - Fork 7
/
.gitlab-ci.yml
60 lines (55 loc) · 1.94 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
.package: &package
image: ${docker_registry}redhawk/alpine-dockerd-plus-utils
stage: build
tags:
- docker
- redhawk
script:
- printf "FROM ${docker_registry}redhawk/rpmbuild:$dist-$arch-onbuild" > Dockerfile
- if [ -z "$CI_COMMIT_TAG" ]; then
rpm_release="0.$CI_PIPELINE_ID";
else
rpm_release=`rpm --query --queryformat "%{release}\n" --specfile ${namespace}$CI_PROJECT_NAME.spec | head -n 1 | awk -F"." "{print $1}"`;
fi
- name=$(echo $CI_PROJECT_NAME| tr '[:upper:]' '[:lower:]')
- docker login ${docker_registry} -u ${docker_user} -p ${docker_password}
- docker image build --pull
-t $name:latest-$dist-$arch
--build-arg "project=omniEvents"
--build-arg "rpm_release=$rpm_release"
--build-arg "spec_file=omniEvents.spec"
--build-arg "arch=$arch" .
- id=$(docker container create $name:latest-$dist-$arch)
- docker container cp $id:/root/rpmbuild/RPMS/ output/
- docker container rm -f $id
- docker image rm -f $name:latest-$dist-$arch
artifacts:
paths:
- output/*/*.rpm
expire_in: 2 days
package:el7:
variables:
dist: el7
arch: x86_64
<<: *package
.s3: &s3
image: ${docker_registry}redhawk/rpmbuild:${dist}-${arch}-onbuild
stage: deploy
tags:
- docker
- redhawk
script:
- /usr/bin/s3cmd sync s3://${s3_bucket}/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/yum/$CI_COMMIT_REF_NAME/$dist/$arch .
- mkdir -p $arch
- for file in `find output -name *.rpm`; do
cp $file $arch;
done
- repomanage --old $arch| xargs rm -f; createrepo --update $arch
- /usr/bin/s3cmd sync -F -v --delete-removed $arch s3://${s3_bucket}/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/yum/$CI_COMMIT_REF_NAME/$dist/
deploy-el7:
variables:
dist: el7
arch: x86_64
dependencies:
- package:el7
<<: *s3