From b8a9758567ef44cc6377c6351eec4d314c7b1b80 Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Fri, 21 Feb 2020 16:18:45 -0800 Subject: [PATCH 1/7] Start making automated linux package builds in CI --- .circleci/config.yml | 187 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 187 insertions(+) create mode 100644 .circleci/config.yml diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 0000000..20aaf58 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,187 @@ +version: 2.1 + +jobs: + + build-ubuntu-disco: + docker: + - image: ubuntu:19.04 + steps: + - run: + name: Install dependencies + command: | + apt-get update + apt-get install -y git ssh ruby-dev rubygems python-all python3-stdeb docker.io python3 python3-pyqt5 python3-appdirs python3-click python3-xdg + gem install --no-ri --no-rdoc rake + gem install --no-ri --no-rdoc package_cloud + - checkout + - run: + name: Create the .deb package + command: | + ./install/linux/build_deb.py + dpkg -i deb_dist/dangerzone_*-1_all.deb + - run: + name: Deploy to packagecloud.io + command: | + VERSION=$(cat dangerzone/__init__.py |grep "dangerzone_version = " |cut -d '"' -f2) + package_cloud push firstlookmedia/code/ubuntu/disco deb_dist/dangerzone_${VERSION}-1_all.deb + package_cloud push firstlookmedia/code/ubuntu/disco deb_dist/dangerzone_${VERSION}-1.dsc + + build-ubuntu-eoan: + docker: + - image: ubuntu:19.10 + steps: + - run: + name: Install dependencies + command: | + apt-get update + apt-get install -y git ssh ruby-dev rubygems python-all python3-stdeb docker.io python3 python3-pyqt5 python3-appdirs python3-click python3-xdg + gem install --no-ri --no-rdoc rake + gem install --no-ri --no-rdoc package_cloud + - checkout + - run: + name: Create the .deb package + command: | + ./install/linux/build_deb.py + dpkg -i deb_dist/dangerzone_*-1_all.deb + - run: + name: Deploy to packagecloud.io + command: | + VERSION=$(cat dangerzone/__init__.py |grep "dangerzone_version = " |cut -d '"' -f2) + package_cloud push firstlookmedia/code/ubuntu/eoan deb_dist/dangerzone_${VERSION}-1_all.deb + package_cloud push firstlookmedia/code/ubuntu/eoan deb_dist/dangerzone_${VERSION}-1.dsc + + build-debian-buster: + docker: + - image: debian:buster + steps: + - run: + name: Install dependencies + command: | + apt-get update + apt-get install -y git ssh ruby-dev rubygems python-all python3-stdeb docker.io python3 python3-pyqt5 python3-appdirs python3-click python3-xdg + gem install --no-ri --no-rdoc rake + gem install --no-ri --no-rdoc package_cloud + - checkout + - run: + name: Create the .deb package + command: | + ./install/linux/build_deb.py + dpkg -i deb_dist/dangerzone_*-1_all.deb + - run: + name: Deploy to packagecloud.io + command: | + VERSION=$(cat dangerzone/__init__.py |grep "dangerzone_version = " |cut -d '"' -f2) + package_cloud push firstlookmedia/code/debian/buster deb_dist/dangerzone_${VERSION}-1_all.deb + package_cloud push firstlookmedia/code/debian/buster deb_dist/dangerzone_${VERSION}-1.dsc + + build-debian-bullseye: + docker: + - image: debian:bullseye + steps: + - run: + name: Install dependencies + command: | + apt-get update + apt-get install -y git ssh ruby-dev rubygems python-all python3-stdeb docker.io python3 python3-pyqt5 python3-appdirs python3-click python3-xdg + gem install --no-ri --no-rdoc rake + gem install --no-ri --no-rdoc package_cloud + - checkout + - run: + name: Create the .deb package + command: | + ./install/linux/build_deb.py + dpkg -i deb_dist/dangerzone_*-1_all.deb + - run: + name: Deploy to packagecloud.io + command: | + VERSION=$(cat dangerzone/__init__.py |grep "dangerzone_version = " |cut -d '"' -f2) + package_cloud push firstlookmedia/code/debian/bullseye deb_dist/dangerzone_${VERSION}-1_all.deb + package_cloud push firstlookmedia/code/debian/bullseye deb_dist/dangerzone_${VERSION}-1.dsc + + build-fedora-30: + docker: + - image: fedora:30 + steps: + - run: + name: Install dependencies + command: | + dnf install -y git openssh ruby-devel make automake gcc gcc-c++ rpm-build qt5-devel python3-qt5 python3-appdirs python3-click + gem install package_cloud + - checkout + - run: + name: Create the .rpm package + command: | + ./install/linux/build_rpm.py + dnf install -y dist/dangerzone-*-1.noarch.rpm + - run: + name: Deploy to packagecloud.io + command: | + VERSION=$(cat dangerzone/__init__.py |grep "dangerzone_version = " |cut -d '"' -f2) + package_cloud push firstlookmedia/code/fedora/30 dist/dangerzone-${VERSION}-1.noarch.rpm + package_cloud push firstlookmedia/code/fedora/30 dist/dangerzone-${VERSION}-1.src.rpm + + build-fedora-31: + docker: + - image: fedora:31 + steps: + - run: + name: Install dependencies + command: | + dnf install -y git openssh ruby-devel make automake gcc gcc-c++ rpm-build qt5-devel python3-qt5 python3-appdirs python3-click + gem install package_cloud + - checkout + - run: + name: Create the .rpm package + command: | + ./install/linux/build_rpm.py + dnf install -y dist/dangerzone-*-1.noarch.rpm + - run: + name: Deploy to packagecloud.io + command: | + VERSION=$(cat dangerzone/__init__.py |grep "dangerzone_version = " |cut -d '"' -f2) + package_cloud push firstlookmedia/code/fedora/31 dist/dangerzone-${VERSION}-1.noarch.rpm + package_cloud push firstlookmedia/code/fedora/31 dist/dangerzone-${VERSION}-1.src.rpm + +workflows: + version: 2 + tests: + jobs: + - test + build-tags: + jobs: + - build-ubuntu-disco: + filters: + tags: + only: /^v.*/ + branches: + ignore: /.*/ + - build-ubuntu-eoan: + filters: + tags: + only: /^v.*/ + branches: + ignore: /.*/ + - build-debian-buster: + filters: + tags: + only: /^v.*/ + branches: + ignore: /.*/ + - build-debian-bullseye: + filters: + tags: + only: /^v.*/ + branches: + ignore: /.*/ + - build-fedora-30: + filters: + tags: + only: /^v.*/ + branches: + ignore: /.*/ + - build-fedora-31: + filters: + tags: + only: /^v.*/ + branches: + ignore: /.*/ From b21eb914c94a934de91920005570f110bd78c7e8 Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Fri, 21 Feb 2020 16:24:09 -0800 Subject: [PATCH 2/7] Remove test job --- .circleci/config.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 20aaf58..bbf07af 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -144,9 +144,6 @@ jobs: workflows: version: 2 - tests: - jobs: - - test build-tags: jobs: - build-ubuntu-disco: From 163f482fd1b03ef6994dc66166dc68342c745f51 Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Fri, 21 Feb 2020 16:29:00 -0800 Subject: [PATCH 3/7] change version to 0.0.1 to test packaging --- dangerzone/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dangerzone/__init__.py b/dangerzone/__init__.py index 06bcb36..a655fb5 100644 --- a/dangerzone/__init__.py +++ b/dangerzone/__init__.py @@ -15,7 +15,7 @@ from .docker_installer import ( DockerInstaller, ) -dangerzone_version = "0.1.0" +dangerzone_version = "0.0.1" class Application(QtWidgets.QApplication): From 942b1b7fd97ac6c72542ae3b0324b50bed3040cb Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Mon, 24 Feb 2020 15:38:46 -0800 Subject: [PATCH 4/7] Pull submodules after checking out code --- .circleci/config.yml | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index bbf07af..c3fb0c1 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -14,6 +14,11 @@ jobs: gem install --no-ri --no-rdoc rake gem install --no-ri --no-rdoc package_cloud - checkout + - run: + name: "Pull submodules" + command: | + git submodule init + git submodule update --remote - run: name: Create the .deb package command: | @@ -38,6 +43,11 @@ jobs: gem install --no-ri --no-rdoc rake gem install --no-ri --no-rdoc package_cloud - checkout + - run: + name: "Pull submodules" + command: | + git submodule init + git submodule update --remote - run: name: Create the .deb package command: | @@ -62,6 +72,11 @@ jobs: gem install --no-ri --no-rdoc rake gem install --no-ri --no-rdoc package_cloud - checkout + - run: + name: "Pull submodules" + command: | + git submodule init + git submodule update --remote - run: name: Create the .deb package command: | @@ -86,6 +101,11 @@ jobs: gem install --no-ri --no-rdoc rake gem install --no-ri --no-rdoc package_cloud - checkout + - run: + name: "Pull submodules" + command: | + git submodule init + git submodule update --remote - run: name: Create the .deb package command: | @@ -108,6 +128,11 @@ jobs: dnf install -y git openssh ruby-devel make automake gcc gcc-c++ rpm-build qt5-devel python3-qt5 python3-appdirs python3-click gem install package_cloud - checkout + - run: + name: "Pull submodules" + command: | + git submodule init + git submodule update --remote - run: name: Create the .rpm package command: | @@ -130,6 +155,11 @@ jobs: dnf install -y git openssh ruby-devel make automake gcc gcc-c++ rpm-build qt5-devel python3-qt5 python3-appdirs python3-click gem install package_cloud - checkout + - run: + name: "Pull submodules" + command: | + git submodule init + git submodule update --remote - run: name: Create the .rpm package command: | From 7113ac3c023a152ae11627343453a4218ab862f9 Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Mon, 24 Feb 2020 15:58:03 -0800 Subject: [PATCH 5/7] Add missing deps: dh-python for debian, python3-pyxdg for fedora, and python3-requests for both --- .circleci/config.yml | 12 ++++++------ BUILD.md | 4 ++-- install/linux/build_rpm.py | 2 +- stdeb.cfg | 4 ++-- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c3fb0c1..9619939 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -10,7 +10,7 @@ jobs: name: Install dependencies command: | apt-get update - apt-get install -y git ssh ruby-dev rubygems python-all python3-stdeb docker.io python3 python3-pyqt5 python3-appdirs python3-click python3-xdg + apt-get install -y git ssh ruby-dev rubygems python-all dh-python python3-stdeb docker.io python3 python3-pyqt5 python3-appdirs python3-click python3-xdg gem install --no-ri --no-rdoc rake gem install --no-ri --no-rdoc package_cloud - checkout @@ -39,7 +39,7 @@ jobs: name: Install dependencies command: | apt-get update - apt-get install -y git ssh ruby-dev rubygems python-all python3-stdeb docker.io python3 python3-pyqt5 python3-appdirs python3-click python3-xdg + apt-get install -y git ssh ruby-dev rubygems python-all dh-python python3-stdeb docker.io python3 python3-pyqt5 python3-appdirs python3-click python3-xdg gem install --no-ri --no-rdoc rake gem install --no-ri --no-rdoc package_cloud - checkout @@ -68,7 +68,7 @@ jobs: name: Install dependencies command: | apt-get update - apt-get install -y git ssh ruby-dev rubygems python-all python3-stdeb docker.io python3 python3-pyqt5 python3-appdirs python3-click python3-xdg + apt-get install -y git ssh ruby-dev rubygems python-all dh-python python3-stdeb docker.io python3 python3-pyqt5 python3-appdirs python3-click python3-xdg gem install --no-ri --no-rdoc rake gem install --no-ri --no-rdoc package_cloud - checkout @@ -97,7 +97,7 @@ jobs: name: Install dependencies command: | apt-get update - apt-get install -y git ssh ruby-dev rubygems python-all python3-stdeb docker.io python3 python3-pyqt5 python3-appdirs python3-click python3-xdg + apt-get install -y git ssh ruby-dev rubygems python-all dh-python python3-stdeb docker.io python3 python3-pyqt5 python3-appdirs python3-click python3-xdg gem install --no-ri --no-rdoc rake gem install --no-ri --no-rdoc package_cloud - checkout @@ -125,7 +125,7 @@ jobs: - run: name: Install dependencies command: | - dnf install -y git openssh ruby-devel make automake gcc gcc-c++ rpm-build qt5-devel python3-qt5 python3-appdirs python3-click + dnf install -y git openssh ruby-devel make automake gcc gcc-c++ rpm-build qt5-devel python3-qt5 python3-appdirs python3-click python3-pyxdg gem install package_cloud - checkout - run: @@ -152,7 +152,7 @@ jobs: - run: name: Install dependencies command: | - dnf install -y git openssh ruby-devel make automake gcc gcc-c++ rpm-build qt5-devel python3-qt5 python3-appdirs python3-click + dnf install -y git openssh ruby-devel make automake gcc gcc-c++ rpm-build qt5-devel python3-qt5 python3-appdirs python3-click python3-pyxdg gem install package_cloud - checkout - run: diff --git a/BUILD.md b/BUILD.md index 824f050..6170dd3 100644 --- a/BUILD.md +++ b/BUILD.md @@ -12,7 +12,7 @@ git submodule update Install dependencies: ```sh -sudo apt install -y python-all python3-stdeb docker.io python3 python3-pyqt5 python3-appdirs python3-click python3-xdg +sudo apt install -y python-all dh-python python3-stdeb docker.io python3 python3-pyqt5 python3-appdirs python3-click python3-xdg python3-requests ``` Run from source tree: @@ -32,7 +32,7 @@ Create a .deb: Install dependencies: ```sh -sudo dnf install -y rpm-build python3 python3-qt5 python3-appdirs python3-click +sudo dnf install -y rpm-build python3 python3-qt5 python3-appdirs python3-click python3-pyxdg python3-requests ``` Run from source tree: diff --git a/install/linux/build_rpm.py b/install/linux/build_rpm.py index dc243da..fa157ab 100755 --- a/install/linux/build_rpm.py +++ b/install/linux/build_rpm.py @@ -39,7 +39,7 @@ def main(): "python3", "setup.py", "bdist_rpm", - "--requires=python3-qt5,python3-appdirs,python3-click", + "--requires=python3-qt5,python3-appdirs,python3-click,python3-pyxdg,python3-requests", ] ) diff --git a/stdeb.cfg b/stdeb.cfg index cc6c6d6..1c9ccce 100644 --- a/stdeb.cfg +++ b/stdeb.cfg @@ -1,6 +1,6 @@ [DEFAULT] Package3: dangerzone -Depends3: docker.io, python3, python3-pyqt5, python3-appdirs, python3-click, python3-xdg -Build-Depends: python3, python3-all +Depends3: docker.io, python3, python3-pyqt5, python3-appdirs, python3-click, python3-xdg, python3-requests +Build-Depends: python3, python-all, dh-python Suite: bionic X-Python3-Version: >= 3.7 \ No newline at end of file From e074204e17e8b199374dd37b5562e838c4eda993 Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Mon, 24 Feb 2020 16:19:07 -0800 Subject: [PATCH 6/7] Oops, dh-python should not be a build dep. And change classifiers in setup.py to a list instead of a tuple --- setup.py | 4 ++-- stdeb.cfg | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/setup.py b/setup.py index 7eb3f48..1710600 100644 --- a/setup.py +++ b/setup.py @@ -31,10 +31,10 @@ setuptools.setup( ("share/dangerzone", file_list("share")), ("share/dangerzone/container", file_list("share/container")), ], - classifiers=( + classifiers=[ "Programming Language :: Python", "Intended Audience :: End Users/Desktop", "Operating System :: OS Independent", - ), + ], entry_points={"console_scripts": ["dangerzone = dangerzone:main"]}, ) diff --git a/stdeb.cfg b/stdeb.cfg index 1c9ccce..ac83fd5 100644 --- a/stdeb.cfg +++ b/stdeb.cfg @@ -1,6 +1,6 @@ [DEFAULT] Package3: dangerzone Depends3: docker.io, python3, python3-pyqt5, python3-appdirs, python3-click, python3-xdg, python3-requests -Build-Depends: python3, python-all, dh-python +Build-Depends: python3, python3-all Suite: bionic X-Python3-Version: >= 3.7 \ No newline at end of file From 467eebc175b8fafa1da30aedfb6bd7fc5995eeb3 Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Mon, 24 Feb 2020 16:20:01 -0800 Subject: [PATCH 7/7] Install python3-requests in fedora CI containers --- .circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 9619939..25ec560 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -125,7 +125,7 @@ jobs: - run: name: Install dependencies command: | - dnf install -y git openssh ruby-devel make automake gcc gcc-c++ rpm-build qt5-devel python3-qt5 python3-appdirs python3-click python3-pyxdg + dnf install -y git openssh ruby-devel make automake gcc gcc-c++ rpm-build qt5-devel python3-qt5 python3-appdirs python3-click python3-pyxdg python3-requests gem install package_cloud - checkout - run: @@ -152,7 +152,7 @@ jobs: - run: name: Install dependencies command: | - dnf install -y git openssh ruby-devel make automake gcc gcc-c++ rpm-build qt5-devel python3-qt5 python3-appdirs python3-click python3-pyxdg + dnf install -y git openssh ruby-devel make automake gcc gcc-c++ rpm-build qt5-devel python3-qt5 python3-appdirs python3-click python3-pyxdg python3-requests gem install package_cloud - checkout - run: