Compare commits
61 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 02465b6d5f | |||
| 63a5afdee6 | |||
| 65c11eb503 | |||
| 1f43155ab7 | |||
| 65c7e58f89 | |||
| 7bc338bfe8 | |||
| 6c40fbcb57 | |||
| 5baffd6f88 | |||
| 49c861d9e2 | |||
| 8a77af960c | |||
| df5d3c5ce0 | |||
| 026c942cb8 | |||
| c91eaf5a60 | |||
| 6487ed4c8b | |||
| e488417c7c | |||
| 147a09813e | |||
| 8c4403c2d4 | |||
| 549a9cc62f | |||
| 960429a4fb | |||
| 358dfd6abb | |||
| 61b606488f | |||
| 100066569c | |||
| b8f07e3a74 | |||
| 2bd8145055 | |||
| 267fe0fbc9 | |||
| d5dae2eab0 | |||
| b60b1474b8 | |||
| 320804241b | |||
| fe802a9642 | |||
| b49200c091 | |||
| a57fedc071 | |||
| 2a37959c53 | |||
| 61807e59e6 | |||
| a9dc05644b | |||
| 26d4877d19 | |||
| dbd9d59881 | |||
| 07b7dfd971 | |||
| 573cfe60b2 | |||
| ae5154b4c3 | |||
| 41f9a962d1 | |||
| 45a57620cd | |||
| 3481ffdd58 | |||
| b788e44dfe | |||
| 1a563eeb8d | |||
| 8f3e8a0f8c | |||
| 0bf3a7f662 | |||
| 3d7f384b25 | |||
| 0931d283ab | |||
| 9ccb69cd29 | |||
| de7f0d1b44 | |||
| d1fc6e809e | |||
| a5a419284a | |||
| 5e4f583845 | |||
| a6fceaf030 | |||
| 78f29c4349 | |||
| 44418547bf | |||
| dcf9262de3 | |||
| a37f7774eb | |||
| e2d36dbb87 | |||
| 82eb7c5a49 | |||
| c0a2673d18 |
+29
@@ -17,3 +17,32 @@
|
||||
/tmt-1.4.0.tar.gz
|
||||
/tmt-1.5.0.tar.gz
|
||||
/tmt-1.6.0.tar.gz
|
||||
/tmt-1.7.0.tar.gz
|
||||
/tmt-1.8.0.tar.gz
|
||||
/tmt-1.9.0.tar.gz
|
||||
/tmt-1.10.0.tar.gz
|
||||
/tmt-1.11.0.tar.gz
|
||||
/tmt-1.12.0.tar.gz
|
||||
/tmt-1.13.0.tar.gz
|
||||
/tmt-1.14.0.tar.gz
|
||||
/tmt-1.15.0.tar.gz
|
||||
/tmt-1.16.0.tar.gz
|
||||
/tmt-1.17.0.tar.gz
|
||||
/tmt-1.18.0.tar.gz
|
||||
/tmt-1.19.0.tar.gz
|
||||
/tmt-1.20.0.tar.gz
|
||||
/tmt-1.21.0.tar.gz
|
||||
/tmt-1.22.0.tar.gz
|
||||
/tmt-1.23.0.tar.gz
|
||||
/tmt-1.24.1.tar.gz
|
||||
/tmt-1.25.0.tar.gz
|
||||
/tmt-1.26.0.tar.gz
|
||||
/tmt-1.26.1.tar.gz
|
||||
/tmt-1.27.0.tar.gz
|
||||
/tmt-1.28.2.tar.gz
|
||||
/tmt-1.29.0.tar.gz
|
||||
/tmt-1.30.0.tar.gz
|
||||
/tmt-1.31.0.tar.gz
|
||||
/tmt-1.32.1.tar.gz
|
||||
/tmt-1.32.2.tar.gz
|
||||
/tmt-1.33.0.tar.gz
|
||||
|
||||
+214
@@ -0,0 +1,214 @@
|
||||
specfile_path: tmt.spec
|
||||
files_to_sync:
|
||||
- tmt.spec
|
||||
- .packit.yaml
|
||||
sync_changelog: true
|
||||
|
||||
upstream_package_name: tmt
|
||||
downstream_package_name: tmt
|
||||
|
||||
upstream_project_url: https://github.com/teemtee/tmt
|
||||
issue_repository: https://github.com/teemtee/tmt
|
||||
|
||||
srpm_build_deps:
|
||||
- hatch
|
||||
- python3-hatch-vcs
|
||||
|
||||
jobs:
|
||||
|
||||
# Build pull requests
|
||||
- job: copr_build
|
||||
trigger: pull_request
|
||||
targets:
|
||||
- fedora-all
|
||||
- epel-9
|
||||
enable_net: False
|
||||
actions:
|
||||
create-archive:
|
||||
- hatch run docs:man
|
||||
- hatch build -t sdist
|
||||
- bash -c "ls dist/tmt-*.tar.gz"
|
||||
get-current-version:
|
||||
# Use `dev888` instead of the last version digit to make
|
||||
# builds older than the final release and newer than
|
||||
# copr builds from main. Remove the remaining suffix
|
||||
# generated by `hatch version` as well so that build
|
||||
# with the latest timestamp always wins.
|
||||
- bash -c "hatch version | sed -E 's/\\.[0-9]+\\.dev.*/.dev888/'"
|
||||
|
||||
# Test pull requests (core)
|
||||
- job: tests
|
||||
identifier: core
|
||||
trigger: pull_request
|
||||
targets:
|
||||
- fedora-latest-stable
|
||||
- epel-9
|
||||
tf_extra_params:
|
||||
test:
|
||||
tmt:
|
||||
name: /plans/features/(core|basic)
|
||||
|
||||
# Test pull requests (full)
|
||||
# Do not run extended unit tests, that plan gets its own job because
|
||||
# of podman vs systemd-resolved flakiness.
|
||||
- job: tests
|
||||
identifier: full
|
||||
trigger: pull_request
|
||||
targets:
|
||||
- fedora-all
|
||||
- epel-9
|
||||
require:
|
||||
label:
|
||||
present:
|
||||
- full test
|
||||
absent:
|
||||
- discuss
|
||||
tf_extra_params:
|
||||
test:
|
||||
tmt:
|
||||
name: '^(?!/plans/features/extended-unit-tests).*$'
|
||||
|
||||
- job: tests
|
||||
identifier: extended-unit-tests
|
||||
trigger: pull_request
|
||||
targets:
|
||||
- fedora-latest-stable
|
||||
require:
|
||||
label:
|
||||
present:
|
||||
- full test
|
||||
absent:
|
||||
- discuss
|
||||
tf_extra_params:
|
||||
test:
|
||||
tmt:
|
||||
name: '/plans/features/extended-unit-tests$'
|
||||
|
||||
# Test pull requests (provision)
|
||||
- job: tests
|
||||
identifier: provision
|
||||
trigger: pull_request
|
||||
use_internal_tf: True
|
||||
targets:
|
||||
- fedora-latest-stable
|
||||
tf_extra_params:
|
||||
test:
|
||||
tmt:
|
||||
name: /plans/provision/virtual
|
||||
environments:
|
||||
- tmt:
|
||||
context:
|
||||
how: provision
|
||||
require:
|
||||
label:
|
||||
present:
|
||||
- full test
|
||||
absent:
|
||||
- discuss
|
||||
|
||||
# Test internal plugins
|
||||
- job: tests
|
||||
trigger: pull_request
|
||||
identifier: "internal-plugins"
|
||||
targets:
|
||||
- fedora-latest-stable
|
||||
use_internal_tf: True
|
||||
fmf_url: "https://gitlab.cee.redhat.com/baseos-qe/tmt.git"
|
||||
# Tag cloud resources for tmt
|
||||
tf_extra_params:
|
||||
environments:
|
||||
- settings:
|
||||
provisioning:
|
||||
tags:
|
||||
BusinessUnit: tmt
|
||||
require:
|
||||
label:
|
||||
present:
|
||||
- full test
|
||||
absent:
|
||||
- discuss
|
||||
|
||||
# Test internal wow
|
||||
- job: tests
|
||||
trigger: pull_request
|
||||
identifier: "internal-wow"
|
||||
targets:
|
||||
- fedora-latest-stable
|
||||
use_internal_tf: True
|
||||
fmf_url: "https://gitlab.cee.redhat.com/baseos-qe/integration_scripts.git"
|
||||
tmt_plan: "/tmt/integration/plan"
|
||||
tf_extra_params:
|
||||
environments:
|
||||
- settings:
|
||||
provisioning:
|
||||
tags:
|
||||
BusinessUnit: tmt
|
||||
require:
|
||||
label:
|
||||
present:
|
||||
- full test
|
||||
absent:
|
||||
- discuss
|
||||
|
||||
# Build commits to main
|
||||
- job: copr_build
|
||||
trigger: commit
|
||||
branch: main
|
||||
targets:
|
||||
- fedora-all
|
||||
- epel-9
|
||||
enable_net: False
|
||||
list_on_homepage: True
|
||||
preserve_project: True
|
||||
owner: "@teemtee"
|
||||
project: tmt
|
||||
release_suffix: "{PACKIT_PROJECT_BRANCH}"
|
||||
actions:
|
||||
create-archive:
|
||||
- hatch run docs:man
|
||||
- hatch build -t sdist
|
||||
- bash -c "ls dist/tmt-*.tar.gz"
|
||||
get-current-version:
|
||||
# Get rid of the the final version digit to make copr
|
||||
# builds older than the final release
|
||||
- bash -c "hatch version | sed -E 's/\\.[0-9]+\\.dev/.dev/'"
|
||||
|
||||
# Release to copr
|
||||
- job: copr_build
|
||||
trigger: release
|
||||
targets:
|
||||
- fedora-all
|
||||
- epel-9
|
||||
enable_net: False
|
||||
list_on_homepage: True
|
||||
preserve_project: True
|
||||
owner: "@teemtee"
|
||||
project: tmt
|
||||
actions:
|
||||
create-archive:
|
||||
- hatch run docs:man
|
||||
- hatch build -t sdist
|
||||
- bash -c "ls dist/tmt-*.tar.gz"
|
||||
get-current-version:
|
||||
- hatch version
|
||||
|
||||
# Fedora releases
|
||||
- job: propose_downstream
|
||||
trigger: release
|
||||
dist_git_branches:
|
||||
- fedora-all
|
||||
- epel-9
|
||||
|
||||
- job: koji_build
|
||||
trigger: commit
|
||||
allowed_pr_authors: ["packit", "psss", "lzachar"]
|
||||
allowed_committers: ["packit", "psss", "lzachar"]
|
||||
dist_git_branches:
|
||||
- fedora-all
|
||||
- epel-9
|
||||
|
||||
- job: bodhi_update
|
||||
trigger: commit
|
||||
dist_git_branches:
|
||||
- fedora-branched
|
||||
- epel-9
|
||||
@@ -1,6 +1,5 @@
|
||||
# tmt
|
||||
|
||||
Test Metadata Tool
|
||||
Test Management Tool
|
||||
|
||||
* https://github.com/psss/tmt/
|
||||
* https://tmt.readthedocs.io/
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
This repository is maintained by packit.
|
||||
https://packit.dev/
|
||||
The file was generated using packit 0.96.0.post1.dev4+gc5b1ea8e.
|
||||
@@ -0,0 +1,66 @@
|
||||
--- tmt-1.24.1/tmt/steps/prepare/install.py.old 2023-06-22 11:57:06.633409186 +0200
|
||||
+++ tmt-1.24.1/tmt/steps/prepare/install.py 2023-06-22 11:57:45.239501579 +0200
|
||||
@@ -273,6 +273,7 @@ class InstallDnf(InstallBase):
|
||||
|
||||
package_manager = "dnf"
|
||||
copr_plugin = "dnf-plugins-core"
|
||||
+ skip_missing_option = "--skip-broken"
|
||||
|
||||
def prepare_command(self) -> Tuple[Command, Command]:
|
||||
""" Prepare installation command """
|
||||
@@ -290,7 +291,7 @@ class InstallDnf(InstallBase):
|
||||
command += Command(self.package_manager)
|
||||
|
||||
if self.skip_missing:
|
||||
- command += Command('--skip-broken')
|
||||
+ options += Command(self.skip_missing_option)
|
||||
|
||||
return (command, options)
|
||||
|
||||
@@ -356,6 +357,14 @@ class InstallDnf(InstallBase):
|
||||
self.guest.execute(command)
|
||||
|
||||
|
||||
+class InstallDnf5(InstallDnf):
|
||||
+ """ Install packages using dnf5 """
|
||||
+
|
||||
+ package_manager = "dnf5"
|
||||
+ copr_plugin = "dnf5-plugins"
|
||||
+ skip_missing_option = "--skip-unavailable"
|
||||
+
|
||||
+
|
||||
class InstallYum(InstallDnf):
|
||||
""" Install packages using yum """
|
||||
|
||||
@@ -592,6 +601,9 @@ class PrepareInstall(tmt.steps.prepare.P
|
||||
elif guest.facts.package_manager == GuestPackageManager.DNF:
|
||||
installer = InstallDnf(logger=logger, parent=self, guest=guest)
|
||||
|
||||
+ elif guest.facts.package_manager == GuestPackageManager.DNF5:
|
||||
+ installer = InstallDnf5(logger=logger, parent=self, guest=guest)
|
||||
+
|
||||
elif guest.facts.package_manager == GuestPackageManager.YUM:
|
||||
installer = InstallYum(logger=logger, parent=self, guest=guest)
|
||||
|
||||
--- tmt-1.24.1/tmt/steps/provision/__init__.py.old 2023-06-22 11:56:50.556370700 +0200
|
||||
+++ tmt-1.24.1/tmt/steps/provision/__init__.py 2023-06-22 11:58:00.472538032 +0200
|
||||
@@ -64,6 +64,7 @@ class CheckRsyncOutcome(enum.Enum):
|
||||
|
||||
class GuestPackageManager(enum.Enum):
|
||||
DNF = 'dnf'
|
||||
+ DNF5 = 'dnf5'
|
||||
YUM = 'yum'
|
||||
RPM_OSTREE = 'rpm-ostree'
|
||||
|
||||
@@ -274,8 +275,9 @@ class GuestFacts(tmt.utils.SerializableC
|
||||
guest,
|
||||
[
|
||||
(Command('stat', '/run/ostree-booted'), GuestPackageManager.RPM_OSTREE),
|
||||
- (Command('rpm', '-q', 'dnf'), GuestPackageManager.DNF),
|
||||
- (Command('rpm', '-q', 'yum'), GuestPackageManager.YUM),
|
||||
+ (Command('dnf5', '--version'), GuestPackageManager.DNF5),
|
||||
+ (Command('dnf', '--version'), GuestPackageManager.DNF),
|
||||
+ (Command('yum', '--version'), GuestPackageManager.YUM),
|
||||
# And, one day, we'd follow up on this with...
|
||||
# (Command('dpkg', '-l', 'apt'), 'apt')
|
||||
])
|
||||
@@ -0,0 +1,66 @@
|
||||
--- tmt-1.24.1/tmt/steps/prepare/install.py.old 2023-06-22 11:57:06.633409186 +0200
|
||||
+++ tmt-1.24.1/tmt/steps/prepare/install.py 2023-06-22 11:57:45.239501579 +0200
|
||||
@@ -273,6 +273,7 @@ class InstallDnf(InstallBase):
|
||||
|
||||
package_manager = "dnf"
|
||||
copr_plugin = "dnf-plugins-core"
|
||||
+ skip_missing_option = "--skip-broken"
|
||||
|
||||
def prepare_command(self) -> Tuple[Command, Command]:
|
||||
""" Prepare installation command """
|
||||
@@ -290,7 +291,7 @@ class InstallDnf(InstallBase):
|
||||
command += Command(self.package_manager)
|
||||
|
||||
if self.skip_missing:
|
||||
- command += Command('--skip-broken')
|
||||
+ options += Command(self.skip_missing_option)
|
||||
|
||||
return (command, options)
|
||||
|
||||
@@ -356,6 +357,14 @@ class InstallDnf(InstallBase):
|
||||
self.guest.execute(command)
|
||||
|
||||
|
||||
+class InstallDnf5(InstallDnf):
|
||||
+ """ Install packages using dnf5 """
|
||||
+
|
||||
+ package_manager = "dnf5"
|
||||
+ copr_plugin = "dnf5-plugins"
|
||||
+ skip_missing_option = "--skip-unavailable"
|
||||
+
|
||||
+
|
||||
class InstallYum(InstallDnf):
|
||||
""" Install packages using yum """
|
||||
|
||||
@@ -592,6 +601,9 @@ class PrepareInstall(tmt.steps.prepare.P
|
||||
elif guest.facts.package_manager == GuestPackageManager.DNF:
|
||||
installer = InstallDnf(logger=logger, parent=self, guest=guest)
|
||||
|
||||
+ elif guest.facts.package_manager == GuestPackageManager.DNF5:
|
||||
+ installer = InstallDnf5(logger=logger, parent=self, guest=guest)
|
||||
+
|
||||
elif guest.facts.package_manager == GuestPackageManager.YUM:
|
||||
installer = InstallYum(logger=logger, parent=self, guest=guest)
|
||||
|
||||
--- tmt-1.24.1/tmt/steps/provision/__init__.py.old 2023-06-22 11:56:50.556370700 +0200
|
||||
+++ tmt-1.24.1/tmt/steps/provision/__init__.py 2023-06-22 11:58:00.472538032 +0200
|
||||
@@ -64,6 +64,7 @@ class CheckRsyncOutcome(enum.Enum):
|
||||
|
||||
class GuestPackageManager(enum.Enum):
|
||||
DNF = 'dnf'
|
||||
+ DNF5 = 'dnf5'
|
||||
YUM = 'yum'
|
||||
RPM_OSTREE = 'rpm-ostree'
|
||||
|
||||
@@ -274,8 +275,9 @@ class GuestFacts(tmt.utils.SerializableC
|
||||
guest,
|
||||
[
|
||||
(Command('stat', '/run/ostree-booted'), GuestPackageManager.RPM_OSTREE),
|
||||
- (Command('rpm', '-q', 'dnf'), GuestPackageManager.DNF),
|
||||
- (Command('rpm', '-q', 'yum'), GuestPackageManager.YUM),
|
||||
+ (Command('dnf5', '--version'), GuestPackageManager.DNF5),
|
||||
+ (Command('dnf', '--version'), GuestPackageManager.DNF),
|
||||
+ (Command('yum', '--version'), GuestPackageManager.YUM),
|
||||
# And, one day, we'd follow up on this with...
|
||||
# (Command('dpkg', '-l', 'apt'), 'apt')
|
||||
])
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
--- !Policy
|
||||
product_versions:
|
||||
- fedora-*
|
||||
decision_contexts:
|
||||
- bodhi_update_push_stable
|
||||
subject_type: koji_build
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./plans/minimal.functional}
|
||||
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./plans/smoke.functional}
|
||||
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./plans/upstream.functional}
|
||||
@@ -1,5 +0,0 @@
|
||||
summary: Basic smoke test
|
||||
discover:
|
||||
how: fmf
|
||||
execute:
|
||||
how: tmt
|
||||
+15
-4
@@ -1,9 +1,20 @@
|
||||
summary:
|
||||
Upstream tests working under virtual machine
|
||||
summary: Run a basic set of upstream tests
|
||||
|
||||
discover:
|
||||
how: fmf
|
||||
url: https://github.com/psss/tmt
|
||||
url: https://github.com/teemtee/tmt
|
||||
ref: fedora
|
||||
filter: tag:virtual
|
||||
filter: "tier:1"
|
||||
|
||||
prepare+:
|
||||
- how: install
|
||||
package:
|
||||
- jq
|
||||
- python3-pip
|
||||
- how: shell
|
||||
script:
|
||||
- pip3 install --user yq || pip3 install yq
|
||||
- yq --help
|
||||
|
||||
execute:
|
||||
how: tmt
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
addedfiles:
|
||||
ignore:
|
||||
# rpminspect forbids /var/tmp prefix by default
|
||||
- /var/tmp/tmt
|
||||
@@ -1 +1 @@
|
||||
SHA512 (tmt-1.6.0.tar.gz) = 9ef48b424c15d822500636434de1d712583bff60c53d01be6bfcbed4a865a7d4a0f5d4821673347c9e465227728378194ed1ec3ac2c0fd80d8090498a28e2c80
|
||||
SHA512 (tmt-1.33.0.tar.gz) = 9a39e5f5d6aae26f3a793f8f0f5a95a3a1f323135a31babf8772d5011cc94ffda662c4b7ed3ad7fe6397452d896004051f7f8f57518cfe3c96083c10b9d97af7
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
summary: Fetch source rpm
|
||||
test: ./test.sh
|
||||
framework: beakerlib
|
||||
require: tmt
|
||||
@@ -1,21 +0,0 @@
|
||||
#!/bin/bash
|
||||
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
|
||||
. /usr/share/beakerlib/beakerlib.sh || exit 1
|
||||
|
||||
rlJournalStart
|
||||
rlPhaseStartSetup
|
||||
rlRun "tmp=\$(mktemp -d)" 0 "Create tmp directory"
|
||||
rlRun "pushd $tmp"
|
||||
rlRun "set -o pipefail"
|
||||
rlPhaseEnd
|
||||
|
||||
rlPhaseStartTest
|
||||
rlFetchSrcForInstalled "tmt"
|
||||
rlRun "ls -la"
|
||||
rlPhaseEnd
|
||||
|
||||
rlPhaseStartCleanup
|
||||
rlRun "popd"
|
||||
rlRun "rm -r $tmp" 0 "Remove tmp directory"
|
||||
rlPhaseEnd
|
||||
rlJournalEnd
|
||||
Reference in New Issue
Block a user