From 8f354ea307078b58b8cdf3734c79c58c59dee9a6 Mon Sep 17 00:00:00 2001 From: Alexander Bethke Date: Wed, 20 Mar 2019 01:16:26 +0100 Subject: [PATCH] Use local dummy repo for flatpak_remote integration tests (#52668) * Use local dummy repo for flatpak_remote integration tests * Excludes versions of Ubuntu older than 16.04 from tests Since there are no flatpak packages available for these Ubuntu versions * Adds handler that removes temporary symlink --- .../targets/flatpak_remote/aliases | 3 +- .../targets/flatpak_remote/meta/main.yml | 1 + .../flatpak_remote/tasks/check_mode.yml | 6 +- .../targets/flatpak_remote/tasks/main.yml | 9 +- .../targets/flatpak_remote/tasks/setup.yml | 7 +- .../targets/flatpak_remote/tasks/test.yml | 4 +- .../targets/setup_flatpak_remote/README.md | 138 ++++++++++++++++++ .../setup_flatpak_remote/files/repo.tar.xz | Bin 0 -> 15496 bytes .../setup_flatpak_remote/handlers/main.yaml | 4 + .../setup_flatpak_remote/meta/main.yaml | 2 + .../setup_flatpak_remote/tasks/main.yaml | 22 +++ 11 files changed, 182 insertions(+), 14 deletions(-) create mode 100644 test/integration/targets/setup_flatpak_remote/README.md create mode 100644 test/integration/targets/setup_flatpak_remote/files/repo.tar.xz create mode 100644 test/integration/targets/setup_flatpak_remote/handlers/main.yaml create mode 100644 test/integration/targets/setup_flatpak_remote/meta/main.yaml create mode 100644 test/integration/targets/setup_flatpak_remote/tasks/main.yaml diff --git a/test/integration/targets/flatpak_remote/aliases b/test/integration/targets/flatpak_remote/aliases index 094c5aa7ac..743bcb6e72 100644 --- a/test/integration/targets/flatpak_remote/aliases +++ b/test/integration/targets/flatpak_remote/aliases @@ -1,7 +1,6 @@ -unsupported +shippable/posix/group3 destructive skip/freebsd skip/osx skip/rhel needs/root -needs/privileged diff --git a/test/integration/targets/flatpak_remote/meta/main.yml b/test/integration/targets/flatpak_remote/meta/main.yml index 07faa21776..314f77eba9 100644 --- a/test/integration/targets/flatpak_remote/meta/main.yml +++ b/test/integration/targets/flatpak_remote/meta/main.yml @@ -1,2 +1,3 @@ dependencies: - prepare_tests + - setup_flatpak_remote diff --git a/test/integration/targets/flatpak_remote/tasks/check_mode.yml b/test/integration/targets/flatpak_remote/tasks/check_mode.yml index 4185432586..7ce89a8c15 100644 --- a/test/integration/targets/flatpak_remote/tasks/check_mode.yml +++ b/test/integration/targets/flatpak_remote/tasks/check_mode.yml @@ -5,7 +5,7 @@ - name: Test addition of absent flatpak remote (check mode) flatpak_remote: name: flatpak-test - flatpakrepo_url: https://dl.flathub.org/repo/flathub.flatpakrepo + flatpakrepo_url: /tmp/flatpak/repo/dummy-repo.flatpakrepo state: present register: addition_result check_mode: true @@ -19,7 +19,7 @@ - name: Test non-existent idempotency of addition of absent flatpak remote (check mode) flatpak_remote: name: flatpak-test - flatpakrepo_url: https://dl.flathub.org/repo/flathub.flatpakrepo + flatpakrepo_url: /tmp/flatpak/repo/dummy-repo.flatpakrepo state: present register: double_addition_result check_mode: true @@ -57,7 +57,7 @@ - name: Test addition of present flatpak remote (check mode) flatpak_remote: name: check-mode-test-remote - flatpakrepo_url: https://dl.flathub.org/repo/flathub.flatpakrepo + flatpakrepo_url: /tmp/flatpak/repo/dummy-repo.flatpakrepo state: present register: addition_result check_mode: true diff --git a/test/integration/targets/flatpak_remote/tasks/main.yml b/test/integration/targets/flatpak_remote/tasks/main.yml index daa7d8cd17..9c3ec6d798 100644 --- a/test/integration/targets/flatpak_remote/tasks/main.yml +++ b/test/integration/targets/flatpak_remote/tasks/main.yml @@ -24,9 +24,9 @@ # executable override - name: Test executable override - flatpak: - name: org.gnome.Characters - remote: flathub + flatpak_remote: + name: irrelevant + remote: irrelevant state: present executable: nothing-that-exists ignore_errors: true @@ -53,4 +53,5 @@ method: system when: | - ansible_distribution in ('Fedora', 'Ubuntu') + ansible_distribution == 'Fedora' or + ansible_distribution == 'Ubuntu' and not ansible_distribution_major_version | int < 16 diff --git a/test/integration/targets/flatpak_remote/tasks/setup.yml b/test/integration/targets/flatpak_remote/tasks/setup.yml index b9c34c50b1..b2fd276604 100644 --- a/test/integration/targets/flatpak_remote/tasks/setup.yml +++ b/test/integration/targets/flatpak_remote/tasks/setup.yml @@ -6,11 +6,12 @@ when: ansible_distribution == 'Fedora' - block: - - name: Activate flatpak ppa on Ubuntu + - name: Activate flatpak ppa on Ubuntu versions older than 18.04/bionic apt_repository: repo: "ppa:alexlarsson/flatpak" state: present mode: 0644 + when: ansible_lsb.major_release | int < 18 - name: Install flatpak package on Ubuntu apt: @@ -19,8 +20,8 @@ when: ansible_distribution == 'Ubuntu' -- name: Install flatpak_remote for testing check mode +- name: Install flatpak remote for testing check mode flatpak_remote: name: check-mode-test-remote - flatpakrepo_url: https://dl.flathub.org/repo/flathub.flatpakrepo + flatpakrepo_url: /tmp/flatpak/repo/dummy-repo.flatpakrepo state: present diff --git a/test/integration/targets/flatpak_remote/tasks/test.yml b/test/integration/targets/flatpak_remote/tasks/test.yml index bf386c18fe..97a13f0cbd 100644 --- a/test/integration/targets/flatpak_remote/tasks/test.yml +++ b/test/integration/targets/flatpak_remote/tasks/test.yml @@ -3,7 +3,7 @@ - name: Test addition - {{ method }} flatpak_remote: name: flatpak-test - flatpakrepo_url: https://dl.flathub.org/repo/flathub.flatpakrepo + flatpakrepo_url: /tmp/flatpak/repo/dummy-repo.flatpakrepo state: present method: "{{ method }}" register: addition_result @@ -17,7 +17,7 @@ - name: Test idempotency of addition - {{ method }} flatpak_remote: name: flatpak-test - flatpakrepo_url: https://dl.flathub.org/repo/flathub.flatpakrepo + flatpakrepo_url: /tmp/flatpak/repo/dummy-repo.flatpakrepo state: present method: "{{ method }}" register: double_addition_result diff --git a/test/integration/targets/setup_flatpak_remote/README.md b/test/integration/targets/setup_flatpak_remote/README.md new file mode 100644 index 0000000000..d7916c14b3 --- /dev/null +++ b/test/integration/targets/setup_flatpak_remote/README.md @@ -0,0 +1,138 @@ +# Create a dummy flatpak repository remote + +This document describes how to create a local flatpak dummy repo. Just like the one contained in the `files/repo.tar.gxz` archive. + + +## Create a hello world app + +Prerequisites: + + - flathub + +Prepare the environment: + +``` +flatpak install --system flathub org.freedesktop.Platform//1.6 org.freedesktop.Sdk//1.6 +``` + +Create a hello world executable: + +``` +echo $'#!/bin/sh\necho hello world' > hello.sh +``` + +To create dummy flatpaks, run this (defining a unique NUM for every flatpak to add): + +``` +export NUM=1 +flatpak build-init appdir$NUM com.dummy.App$NUM org.freedesktop.Sdk org.freedesktop.Platform 1.6; +flatpak build appdir$NUM mkdir /app/bin; +flatpak build appdir$NUM install --mode=750 hello.sh /app/bin; +flatpak build-finish --command=hello.sh appdir$NUM +``` + +## Create a repo and/or add the app to it + +Create a repo and add the file to it in one command: + +``` +flatpak build-export repo appdir$NUM stable +``` + +## Create flatpak*-files + +Put a flatpakref file under the repo folder (`repo/com.dummy.App1.flatpakref`): + +``` +[Flatpak Ref] +Title=Dummy App$NUM +Name=com.dummy.App$NUM +Branch=stable +Url=file:///tmp/flatpak/repo +GPGKey={{ base64-encoded public KEY }} +IsRuntime=false +RuntimeRepo=https://flathub.org/repo/flathub.flatpakrepo +``` + +Add a `.flatpakrepo` file to the `repo` folder (`repo/dummy-repo.flatpakrepo`): + +``` +[Flatpak Repo] +Title=Dummy Repo +Url=file:///tmp/flatpak/repo +Comment=Dummy repo for ansible module integration testing +Description=Dummy repo for ansible module integration testing +GPGKey={{ base64-encoded public KEY }} +``` + +## Sign the repo + +Create a new key in a new gpg home folder (On RedHat systems, the executable needs to addressed as gpg2): + +``` +mkdir gpg +gpg --homedir gpg --quick-gen-key test@dummy.com +``` + +Sign the repo and summary file, you need to redo this when you update the repository: + +``` +flatpak build-sign repo --gpg-sign=KEY_ID --gpg-homedir=gpg +flatpak build-update-repo repo --gpg-sign=KEY_ID --gpg-homedir=gpg +``` + +Export the public key as a file: + +``` +gpg --homedir=gpg --export KEY_ID > dummy-repo.gpg +``` + +Create base64-encoded string from gpg-file for `GPGKey=` property in flatpak*-files: + +``` +base64 dummy-repo.gpg | tr -d '\n' +``` + +## How to use the repo + +Now you can add the `repo` folder as a local repo: + +``` +flatpak --system remote-add --gpg-import=/tmp/flatpak/repo/dummy-repo.gpg dummy-repo /tmp/flatpak/repo +``` + +Or, via `.flatpakrepo` file: + +``` +flatpak --system remote-add dummy-repo /tmp/flatpak/repo/dummy-repo.flatpakrepo +``` + +And install the hello world flatpaks like this: + +``` +flatpak --system install dummy-repo com.dummy.App$NUM +``` + +Or from flatpakref: + +``` +flatpak --system install --from /tmp/flatpak/repo/com.dummy.App$NUM.flatpakref +``` + +Run the app: + +``` +flatpak run com.dummy.App$NUM +``` + +To install an app without any runtime dependencies (the app will be broken, but it is enough to test flatpak installation): + +``` +flatpak --system install --no-deps dummy-repo com.dummy.App$NUM +``` + +## Sources: + +* https://blogs.gnome.org/alexl/2017/02/10/maintaining-a-flatpak-repository/ + +* http://docs.flatpak.org/en/latest/first-build.html diff --git a/test/integration/targets/setup_flatpak_remote/files/repo.tar.xz b/test/integration/targets/setup_flatpak_remote/files/repo.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..41a89c46efee3b2c478a106ffc02d423d5657e89 GIT binary patch literal 15496 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 K000001X)^a`4u++ literal 0 HcmV?d00001 diff --git a/test/integration/targets/setup_flatpak_remote/handlers/main.yaml b/test/integration/targets/setup_flatpak_remote/handlers/main.yaml new file mode 100644 index 0000000000..9380dee96b --- /dev/null +++ b/test/integration/targets/setup_flatpak_remote/handlers/main.yaml @@ -0,0 +1,4 @@ +- name: remove temporary flatpak link + file: + state: absent + path: /tmp/flatpak diff --git a/test/integration/targets/setup_flatpak_remote/meta/main.yaml b/test/integration/targets/setup_flatpak_remote/meta/main.yaml new file mode 100644 index 0000000000..75ee4583ac --- /dev/null +++ b/test/integration/targets/setup_flatpak_remote/meta/main.yaml @@ -0,0 +1,2 @@ +dependencies: + - setup_remote_tmp_dir diff --git a/test/integration/targets/setup_flatpak_remote/tasks/main.yaml b/test/integration/targets/setup_flatpak_remote/tasks/main.yaml new file mode 100644 index 0000000000..c199d216fa --- /dev/null +++ b/test/integration/targets/setup_flatpak_remote/tasks/main.yaml @@ -0,0 +1,22 @@ +- name: Set up dummy flatpak repository remote + block: + + - name: Copy repo into place + unarchive: + src: repo.tar.xz + dest: "{{ remote_tmp_dir }}" + owner: root + group: root + mode: 0644 + + - name: Create deterministic link to temp directory + file: + state: link + src: "{{ remote_tmp_dir }}/" + path: "/tmp/flatpak" + owner: root + group: root + mode: 0644 + notify: remove temporary flatpak link + + become: true