Skip to content

Commit c6374d7

Browse files
committed
package build: improve speed
1 parent 43c8671 commit c6374d7

File tree

2 files changed

+36
-17
lines changed

2 files changed

+36
-17
lines changed

Makefile.pkg

+24-17
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
PACKAGECLOUD_TOKEN ?= $(PACKAGECLOUD_TOKEN)
1+
TOKEN ?= $(PACKAGECLOUD_TOKEN)
22

33
prepare_builddir: clean
44
mkdir -p build
@@ -19,38 +19,45 @@ rpm: prepare_builddir
1919
$(BUILDDIR)/packaging/rpm/SPECS/mamonsu.spec
2020
cp -av $(BUILDDIR)/packaging/rpm/RPMS/noarch/mamonsu*.rpm .
2121

22-
pkg: prepare_pkg build/pkg_debian build/pkg_ubuntu build/pkg_centos
23-
@echo Cloud done
22+
pkg: build/prepare build/all
23+
docker run -v "$(WORKDIR)":/src --rm debian:wheezy bash -exc " \
24+
cp /src/packaging/push.rb /src/build/out && cd /src/build/out && \
25+
(apt-get update -m || apt-get update -m || apt-get update -m) && \
26+
apt-get install -y ruby-dev && gem install --no-ri --no-rdoc package_cloud -v 0.2.37 && \
27+
TOKEN=$(TOKEN) ruby push.rb"
2428

25-
prepare_pkg:
29+
build/prepare:
2630
mkdir -p build
31+
touch build/prepare
32+
33+
build/all: build/pkg_debian build/pkg_ubuntu build/pkg_centos
34+
@echo Build for all platform: done
35+
touch build/all
2736

2837
build/pkg_debian: build/pkg_debian_7 build/pkg_debian_8
29-
@echo Debian done
38+
@echo Debian: done
3039

3140
build/pkg_ubuntu: build/pkg_ubuntu_14_04 build/pkg_ubuntu_15_10 build/pkg_ubuntu_16_04 build/pkg_ubuntu_16_10
32-
@echo Ubuntu done
41+
@echo Ubuntu: done
3342

3443
build/pkg_centos: build/pkg_centos_6 build/pkg_centos_7
35-
@echo Centos done
44+
@echo Centos: done
3645

3746
define build_deb
38-
docker run -v "$(WORKDIR)":/var/tmp -e LANG=C.UTF-8 --rm $1:$2 bash -exc " \
39-
cp -a /var/tmp /var/build && \
47+
docker run -v "$(WORKDIR)":/src --rm $1:$2 bash -exc " \
48+
cp -a /src /var/build && \
4049
find /var/build -type d -exec chmod 0755 {} \; && find /var/build -type f -exec chmod 0644 {} \; && \
4150
cd /var/build && (apt-get update -m || apt-get update -m || apt-get update -m) && \
42-
apt-get install -y make dpkg-dev debhelper python-dev python-setuptools ruby-dev && make deb && \
43-
(type gem | apt-get install -y rubygems) && gem install package_cloud --no-ri --no-rdoc && \
44-
PACKAGECLOUD_TOKEN=$(PACKAGECLOUD_TOKEN) package_cloud push postgrespro/mamonsu/$1/$2 *.deb"
51+
apt-get install -y make dpkg-dev debhelper python-dev python-setuptools && make deb && \
52+
mkdir -p /src/build/out/$1/$2 && cp *.deb /src/build/out/$1/$2"
4553
endef
4654

4755
define build_rpm
48-
docker run -v "$(WORKDIR)":/var/tmp -e LANG=C.UTF-8 --rm $1:$2 bash -exc " \
49-
cp -a /var/tmp /var/build && \
56+
docker run -v "$(WORKDIR)":/src --rm $1:$2 bash -exc " \
57+
cp -a /src /var/build && \
5058
find /var/build -type d -exec chmod 0755 {} \; && find /var/build -type f -exec chmod 0644 {} \; && \
51-
cd /var/build && yum install -y tar make rpm-build python2-devel python-setuptools ruby-devel && make rpm && \
52-
gem install package_cloud --no-ri --no-rdoc && \
53-
PACKAGECLOUD_TOKEN=$(PACKAGECLOUD_TOKEN) package_cloud push postgrespro/mamonsu/el/$2 *.rpm"
59+
cd /var/build && yum install -y tar make rpm-build python2-devel python-setuptools && make rpm && \
60+
mkdir -p /src/build/out/el/$2 && cp *.rpm /src/build/out/el/$2"
5461
endef
5562

5663
build/pkg_debian_7:

packaging/push.rb

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#!/usr/bin/env ruby
2+
3+
token = ENV["TOKEN"]
4+
5+
# el/6/some.rpm or debian/wheezy/some.deb
6+
Dir.glob("*/*/*") do |file|
7+
distrib, codename, package = file.split("/")
8+
puts "Push #{package} for #{distrib}/#{codename}..."
9+
cmd = "package_cloud push postgrespro/mamonsu/#{distrib}/#{codename} #{file}"
10+
system({'LANG' => 'C.UTF-8', 'PACKAGECLOUD_TOKEN' => token}, cmd)
11+
exit $?.exitstatus unless $?.success?
12+
end

0 commit comments

Comments
 (0)