[SCM] ci-tooling packaging branch, master, updated. f49367220c7b301750f74d379f8e18f42ae985a7
Rohan Garg
rohangarg-guest at moszumanska.debian.org
Wed Jan 7 18:01:04 UTC 2015
Gitweb-URL: http://git.debian.org/?p=pkg-kde/ci-tooling.git;a=commitdiff;h=f493672
The following commit has been merged in the master branch:
commit f49367220c7b301750f74d379f8e18f42ae985a7
Author: Rohan Garg <rohan at kde.org>
Date: Wed Jan 7 18:59:44 2015 +0100
Add CI tooling for Mozilla packages
---
dci/mozilla.rb | 131 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
dci/source.rb | 2 +-
2 files changed, 132 insertions(+), 1 deletion(-)
diff --git a/dci/mozilla.rb b/dci/mozilla.rb
new file mode 100644
index 0000000..4a4a108
--- /dev/null
+++ b/dci/mozilla.rb
@@ -0,0 +1,131 @@
+require_relative '../lib/logger'
+require_relative '../lib/debian/changelog'
+require_relative '../lib/debian/control'
+
+
+require 'open-uri'
+require 'nokogiri'
+require 'thwait'
+
+fail 'Need a mozilla product to build for!' unless ARGV[1]
+fail 'Need a release to build for!' unless ARGV[2]
+
+$logger = new_logger
+
+PACKAGE = ARGV[1]
+RELEASE = ARGV[2]
+
+def firefox_releases
+ threads = []
+ ubuntu_versions = []
+ upstream_versions = []
+ threads << Thread.new do
+ # Find the latest release from the Mozilla releases page
+ begin
+ doc = Nokogiri::HTML(open("https://www.mozilla.org/en-US/firefox/releases"))
+ rescue
+ sleep 30
+ retry
+ end
+
+ doc.css('li').each do |node|
+ text = node.text
+ match_data = text.match('(\d+[.]\d+)')
+ upstream_versions << match_data.string.to_f unless match_data.nil?
+ end
+
+ upstream_versions.uniq!
+ upstream_versions.sort!
+ puts "Upstream #{upstream_versions}"
+ end
+
+ threads << Thread.new do
+ `rmadison -u ubuntu -a amd64 firefox`.to_str.each_line { |line|
+ match_data = line.match('(\d+[.]\d+)')
+ ubuntu_versions << match_data[0].to_f unless match_data.nil?
+ }
+ ubuntu_versions.uniq!
+ ubuntu_versions.sort!
+ puts "Ubuntu #{ubuntu_versions}"
+ end
+
+ ThreadsWait.all_waits(threads)
+ return { ubuntu: ubuntu_versions[-1], upstream: upstream_versions[-1] }
+end
+
+def run_cmd(cmd)
+ retry_count = 0
+ begin
+ if retry_count <= 5
+ fail unless system(cmd)
+ else
+ $logger.fatal("#{cmd} keeps failing! :(")
+ exit 1
+ end
+ rescue RuntimeError
+ $logger.warn("Trying to run #{cmd} again!")
+ retry_count += 1
+ sleep(retry_count * 20)
+ retry
+ end
+end
+
+def build_firefox
+ release_info = firefox_releases
+ if release_info[:ubuntu] < release_info[:firefox_releases]
+ logger.error("Can't build new firefox, Ubuntu hasn't updated the package!")
+ exit 0
+ end
+
+ Dir.mkdir('build')
+ Dir.chdir('build') {
+ system('pull-lp-source firefox')
+ firefox_dir = Dir["firefox-*"][0]
+
+ system("hg clone http://www.rosenauer.org/hg/mozilla/#firefox#{release_info[:ubuntu]} suse")
+ Dir.chdir(firefox_dir) {
+ changelog = Changelog.new
+ version = "#{changelog.version(Changelog::BASE)}"
+ if RELEASE == 'sid' || RELEASE == 'unstable'
+ version += '-1'
+ File.open('debian/config/mozconfig.in', 'a') { |f|
+ f.puts("ac_add_options --enable-gstreamer=1.0
")
+ }
+ else
+ version += changelog.version(Changelog::REVISION).next
+ end
+ version += "~#{DateTime.now.strftime('%Y%m%d.%H%M')}"
+ logger.info("New version is going to be #{version}")
+ `dch -v "#{version}" ""`
+
+ `cp ../suse/firefox-kde.patch ../suse/mozilla-kde.patch debian/patches/`
+ `cp ../suse/MozillaFirefox/kde.js debian/`
+
+ logger.info("Adding Firefox KDE patches")
+ File.open('debian/patches/series', 'a') { |f|
+ f.puts('firefox-kde.patch
mozilla-kde.patch
')
+ }
+
+ logger.info("Modifying debian/rules")
+ `sed -i '/^pre-build::/ s/$/
mkdir -p $(MOZ_DISTDIR)\/bin\/defaults\/pref\/
cp $(CURDIR)\/debian\/kde.js $(MOZ_DISTDIR)\/bin\/defaults\/pref\/kde.js /' debian/rules`
+
+ logger.info("Building the source package")
+ control = DebianControl.new
+ control.parse!
+ control.source['build-depends'].each do |dep|
+ build_depends << dep.name
+ end
+ fail "Failed to install build deps!" unless system("apt-get -y install #{build_depends.join(' ')}")
+ `dch --release --distribution #{RELEASE} ""`
+ system('debuild -S -sa')
+ }
+ system('dcmd cp firefox*.changes /build/')
+ }
+end
+
+def build_thunderbird
+ $logger.info("Needs implementing")
+end
+
+run_cmd('apt-get update')
+run_cmd('apt-get -y install ubuntu-dev-tools mercurial')
diff --git a/dci/source.rb b/dci/source.rb
index be66249..f2b9c74 100644
--- a/dci/source.rb
+++ b/dci/source.rb
@@ -35,7 +35,7 @@ def run_cmd(cmd)
retry_count = 0
begin
if retry_count <= 5
- raise if not system(cmd)
+ raise unless system(cmd)
else
$logger.fatal("#{cmd} keeps failing! :(")
exit 1
--
ci-tooling packaging
More information about the pkg-kde-commits
mailing list