Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tests: Merge installed/ and fedora-str/ directories #1513

Closed
wants to merge 5 commits into from

Conversation

cgwalters
Copy link
Member

@cgwalters cgwalters commented Mar 23, 2018

Let's be opinionated now, and our installed/ test story is
Ansible/STR. Merge tests/fedora-str into tests/installed/.

Rework the nondestructive tests into a separate playbook run, and parallelize
them for more efficiency.

The destructive tests are also changed to use Ansible more.

Add a higher level run.sh entrypoint and update the README.md
with some useful tips.

@jlebon jlebon added the WIP label Mar 23, 2018
@cgwalters
Copy link
Member Author

Note this is going to work better with https://pagure.io/standard-test-roles/pull-request/152#

@cgwalters cgwalters force-pushed the tests-str-3 branch 2 times, most recently from 73be80b to c24396d Compare March 26, 2018 22:12
@cgwalters cgwalters changed the title WIP: Split off nondestructive tests, run in parallel tests: Merge installed/ and fedora-str/ directories Mar 26, 2018
@cgwalters cgwalters removed the WIP label Mar 26, 2018
@cgwalters
Copy link
Member Author

Lifting WIP.

@ashcrow
Copy link

ashcrow commented Mar 27, 2018

Looks like a timeout on async test:

ASK [Begin async command execution] *******************************************
changed: [/var/tmp/checkout/tests/installed/fedora-atomic-host.qcow2] => (item=/root/tests/installed/nondestructive/itest-bare-unit.sh)
changed: [/var/tmp/checkout/tests/installed/fedora-atomic-host.qcow2] => (item=/root/tests/installed/nondestructive/itest-bare-user-root.sh)
changed: [/var/tmp/checkout/tests/installed/fedora-atomic-host.qcow2] => (item=/root/tests/installed/nondestructive/itest-bareuser-nouserxattrs.sh)
changed: [/var/tmp/checkout/tests/installed/fedora-atomic-host.qcow2] => (item=/root/tests/installed/nondestructive/itest-payload-link.sh)
changed: [/var/tmp/checkout/tests/installed/fedora-atomic-host.qcow2] => (item=/root/tests/installed/nondestructive/itest-pull-space.sh)
changed: [/var/tmp/checkout/tests/installed/fedora-atomic-host.qcow2] => (item=/root/tests/installed/nondestructive/itest-pull.sh)
changed: [/var/tmp/checkout/tests/installed/fedora-atomic-host.qcow2] => (item=/root/tests/installed/nondestructive/itest-remotes.sh)

TASK [Check async command status] **********************************************
FAILED - RETRYING: Check async command status (240 retries left).
<snip/>

@cgwalters
Copy link
Member Author

Looks like a timeout on async test:

I pulled in https://pagure.io/standard-test-roles/pull-request/152# which should help hopefully.

@cgwalters
Copy link
Member Author

bot, retest this please

remote_user: root
vars:
use_git_build: True
tests: "."
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So this can be used to select which tests to run, right? Can you document that in the README.md?

fi

# TODO: parallelize this
PLAYBOOKS=${PLAYBOOKS:-destructive.yml nondestructive.yml}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, would it be better practice to run the non-destructive tests first?

The high level structure is that we take a qcow2 file, inject
built RPMs into it, and then use Ansible to run tests.

See `papr.yml` for canonical usage.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor: s/papr.yml/.papr.yml/

@jlebon
Copy link
Member

jlebon commented Mar 28, 2018

bot, retest this please

@cgwalters
Copy link
Member Author

Hmm so locally on my desktop this task is 8 seconds:

+ date
Tue Mar 27 19:59:00 UTC 2018
+ ostree --repo=repo pull-local /ostree/repo 2c92c5a895094949df140504b6d502662f78ba87f11c5bd421025a441e859862
3604 metadata, 26046 content objects imported
+ date
Tue Mar 27 19:59:08 UTC 2018

Yet in PAPR it's four minutes:

Wed Mar 28 14:44:05 UTC 2018
+ ostree --repo=repo pull-local /ostree/repo c4015063c00515ddbbaa4c484573d38376db270b09adb22a4859faa0a39d5d93
3606 metadata, 26052 content objects imported
+ date
Wed Mar 28 14:48:16 UTC 2018

Offhand I'm guessing this is something like us overloading container tests on a single host?

@jlebon
Copy link
Member

jlebon commented Mar 28, 2018

That sounds plausible, yes. Each run spawns 8 containers, all installing deps and building ostree in parallel. The cool thing with running in OCP is that we can naturally split those out across the whole cluster. Maybe let's try marking it as destructive so it runs inline afterwards and see if it makes a difference?

Let's be opinionated now, and our installed/ test story *is*
Ansible/STR.  Merge `tests/fedora-str` into `tests/installed/`.

Rework the nondestructive tests into a separate playbook run, and parallelize
them for more efficiency.

The destructive tests are also changed to use Ansible more.

Add a higher level `run.sh` entrypoint and update the `README.md`
with some useful tips.
@cgwalters
Copy link
Member Author

bot, retest this please

1 similar comment
@cgwalters
Copy link
Member Author

bot, retest this please

@cgwalters
Copy link
Member Author

Maybe let's try marking it as destructive so it runs inline afterwards and see if it makes a difference?

Yeah, but this across-the-board speed hit is problematic in other ways too. And the overloading is also the source of other CI flakes like disk space. So I'd rather to try to sprint to the new Kube architecture; it's not like we're lacking resources (in general).

@jlebon
Copy link
Member

jlebon commented Apr 4, 2018

bot, retest this please

@jlebon
Copy link
Member

jlebon commented Apr 5, 2018

That looks better, though I see:

fatal: unable to access 'https://src.fedoraproject.org/rpms/ostree/': The requested URL returned error: 503

So I'd rather to try to sprint to the new Kube architecture; it's not like we're lacking resources (in general).

Agreed! I'm hoping to get there really soon. That said, just for the purposes of unblocking this right now, WDYT of just provisioning a beefy host: and running it there? (I.e. pkg-layer oci-kvm-hook and start up a build cnt).

@jlebon
Copy link
Member

jlebon commented Apr 5, 2018

@rh-atomic-bot r+ 94c4a74

@rh-atomic-bot
Copy link

⌛ Testing commit 94c4a74 with merge 5215f24...

@rh-atomic-bot
Copy link

☀️ Test successful - status-atomicjenkins
Approved by: jlebon
Pushing 5215f24 to master...

jlebon added a commit to jlebon/ostree that referenced this pull request Apr 11, 2018
Somehow, this slipped through in ostreedev#1513. We weren't inheriting anymore,
so `branches` defaulted back to just `master`. This means we weren't
gating on most of the containerized builds anymore. Ouch!

It'd make sense to teach PAPR to allow some defaults across all
testsuites, even in the `inherit: false` case. Though it's tempting to
also just change the hardcoded PAPR default to those branches since our
use of Homu + PAPR at this point is pretty ubiquitous, and it doesn't
really hurt for the ones that don't use it.
rh-atomic-bot pushed a commit that referenced this pull request Apr 11, 2018
Somehow, this slipped through in #1513. We weren't inheriting anymore,
so `branches` defaulted back to just `master`. This means we weren't
gating on most of the containerized builds anymore. Ouch!

It'd make sense to teach PAPR to allow some defaults across all
testsuites, even in the `inherit: false` case. Though it's tempting to
also just change the hardcoded PAPR default to those branches since our
use of Homu + PAPR at this point is pretty ubiquitous, and it doesn't
really hurt for the ones that don't use it.

Closes: #1536
Approved by: cgwalters
rh-atomic-bot pushed a commit that referenced this pull request Apr 12, 2018
Somehow, this slipped through in #1513. We weren't inheriting anymore,
so `branches` defaulted back to just `master`. This means we weren't
gating on most of the containerized builds anymore. Ouch!

It'd make sense to teach PAPR to allow some defaults across all
testsuites, even in the `inherit: false` case. Though it's tempting to
also just change the hardcoded PAPR default to those branches since our
use of Homu + PAPR at this point is pretty ubiquitous, and it doesn't
really hurt for the ones that don't use it.

Closes: #1536
Approved by: cgwalters
rh-atomic-bot pushed a commit that referenced this pull request Apr 12, 2018
Somehow, this slipped through in #1513. We weren't inheriting anymore,
so `branches` defaulted back to just `master`. This means we weren't
gating on most of the containerized builds anymore. Ouch!

It'd make sense to teach PAPR to allow some defaults across all
testsuites, even in the `inherit: false` case. Though it's tempting to
also just change the hardcoded PAPR default to those branches since our
use of Homu + PAPR at this point is pretty ubiquitous, and it doesn't
really hurt for the ones that don't use it.

Closes: #1536
Approved by: cgwalters
rh-atomic-bot pushed a commit that referenced this pull request Apr 12, 2018
Somehow, this slipped through in #1513. We weren't inheriting anymore,
so `branches` defaulted back to just `master`. This means we weren't
gating on most of the containerized builds anymore. Ouch!

It'd make sense to teach PAPR to allow some defaults across all
testsuites, even in the `inherit: false` case. Though it's tempting to
also just change the hardcoded PAPR default to those branches since our
use of Homu + PAPR at this point is pretty ubiquitous, and it doesn't
really hurt for the ones that don't use it.

Closes: #1536
Approved by: cgwalters
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants