generated from sig_core/wiki-template
migrate_to_testing_wiki #8
@ -23,7 +23,7 @@ This test case verifies that installations via both local and remote Kickstart c
|
|||||||
1. Connect the USB stick to the test system
|
1. Connect the USB stick to the test system
|
||||||
{% include 'testing/qa_setup_boot_to_media.md' %}
|
{% include 'testing/qa_setup_boot_to_media.md' %}
|
||||||
1. Hit the Tab key to edit the boot command
|
1. Hit the Tab key to edit the boot command
|
||||||
1. Provide a local Kickstart file by supplying the GRUB boot option `inst.ks=file:/path/to/local.ks` or a remote Kickstart file by supplying the GRUB boot option `inst.ks=https://dl.rockylinux.org/remote.ks`.
|
1. Provide a local Kickstart file by supplying the GRUB boot option `inst.ks=file:/path/to/local.ks` or a remote Kickstart file by supplying the GRUB boot option `inst.ks=https://git.resf.org/testing/createhdds/raw/branch/rocky/server.ks`.
|
||||||
|
|
||||||
## How to test
|
## How to test
|
||||||
1. Continue booting the installer as normal.
|
1. Continue booting the installer as normal.
|
||||||
|
@ -18,18 +18,20 @@ This verifies that Rocky Linux ISO image can be written to USB media using `dd`
|
|||||||
Any data on the USB stick used for this test is likely to be destroyed. Please do not use a stick whose contents you need to keep.
|
Any data on the USB stick used for this test is likely to be destroyed. Please do not use a stick whose contents you need to keep.
|
||||||
|
|
||||||
## Setup
|
## Setup
|
||||||
|
|
||||||
1. Provide a USB media device that is larger than the ISO image you wish to test and that it can be completely erased.
|
1. Provide a USB media device that is larger than the ISO image you wish to test and that it can be completely erased.
|
||||||
2. Provide a Linux (or other *nix system) that has the `dd` command available and an unoccupied USB port.
|
2. Provide a Linux (or other *nix system) that has the `dd` command available and an unoccupied USB port.
|
||||||
3. Download the Rocky Linux ISO image you wish to test onto the test system.
|
3. Download the Rocky Linux ISO image you wish to test onto the test system.
|
||||||
- Example command:<br>`curl -LOR http://dl.rockylinux.org/pub/rocky/8/isos/x86_64/Rocky-8.5-x86_64-boot.iso`
|
- Example command:<br>`curl -LOR https://dl.rockylinux.org/pub/rocky/8/isos/x86_64/Rocky-x86_64-boot.iso`
|
||||||
4. Download the `CHECKSUM` file that goes with the Rocky Linux ISO image that you wish to test.
|
4. Download the `CHECKSUM` file that goes with the Rocky Linux ISO image that you wish to test.
|
||||||
- Example command:<br>`curl -LOR http://dl.rockylinux.org/pub/rocky/8/isos/x86_64/CHECKSUM`
|
- Example command:<br>`curl -LOR https://dl.rockylinux.org/pub/rocky/8/isos/x86_64/CHECKSUM`
|
||||||
5. Download the `CHECKSUM.sig` file that does with the `CHECKSUM` file.
|
5. Download the `CHECKSUM.sig` file that does with the `CHECKSUM` file.
|
||||||
- Example command:<br>`curl -LOR http://dl.rockylinux.org/pub/rocky/8/isos/x86_64/CHECKSUM.sig`
|
- Example command:<br>`curl -LOR https://dl.rockylinux.org/pub/rocky/8/isos/x86_64/CHECKSUM.sig`
|
||||||
6. Download the Rocky Release Engineering GPG key.
|
6. Download the Rocky Release Engineering GPG key.
|
||||||
- Example command:<br>`curl -LOR http://dl.rockylinux.org/pub/rocky/RPM-GPG-KEY-rockyofficial`
|
- Example command:<br>`curl -LOR https://dl.rockylinux.org/pub/rocky/RPM-GPG-KEY-rockyofficial`
|
||||||
|
|
||||||
## How to test
|
## How to test
|
||||||
|
|
||||||
1. Import the Rocky Release Engineering GPG key.
|
1. Import the Rocky Release Engineering GPG key.
|
||||||
- Example command:<br>`gpg --import RPM-GPG-KEY-rockyofficial`
|
- Example command:<br>`gpg --import RPM-GPG-KEY-rockyofficial`
|
||||||
2. Verify the signature of the CHECKSUM file.
|
2. Verify the signature of the CHECKSUM file.
|
||||||
@ -43,6 +45,7 @@ This verifies that Rocky Linux ISO image can be written to USB media using `dd`
|
|||||||
7. **[OPTIONAL]** Proceed with installation on the test system.<br>**Depending on installer choices this MAY destroy all the data on the test system.**
|
7. **[OPTIONAL]** Proceed with installation on the test system.<br>**Depending on installer choices this MAY destroy all the data on the test system.**
|
||||||
|
|
||||||
## Expected Results
|
## Expected Results
|
||||||
|
|
||||||
1. The gpg signature on the `CHECKSUM` file is valid.
|
1. The gpg signature on the `CHECKSUM` file is valid.
|
||||||
2. The `CHECKSUM` of the Rocky Linux ISO is valid.
|
2. The `CHECKSUM` of the Rocky Linux ISO is valid.
|
||||||
3. The Rocky Linux ISO is written to the USB stick without errors.
|
3. The Rocky Linux ISO is written to the USB stick without errors.
|
||||||
|
@ -8,6 +8,7 @@ rc:
|
|||||||
level: Final
|
level: Final
|
||||||
---
|
---
|
||||||
# Creating your primary keypair
|
# Creating your primary keypair
|
||||||
|
|
||||||
1. Initiate the keypair generation wizard
|
1. Initiate the keypair generation wizard
|
||||||
|
|
||||||
gpg --full-generate-key --expert
|
gpg --full-generate-key --expert
|
||||||
@ -19,6 +20,7 @@ rc:
|
|||||||
1. Type a passphrase (twice)
|
1. Type a passphrase (twice)
|
||||||
|
|
||||||
# Create a signing keypair
|
# Create a signing keypair
|
||||||
|
|
||||||
1. Add a signing subkey
|
1. Add a signing subkey
|
||||||
|
|
||||||
gpg --expert --edit-key my@email.addr
|
gpg --expert --edit-key my@email.addr
|
||||||
@ -43,6 +45,7 @@ Export the *primary keypair* (put these somewhere very safe along with revocatio
|
|||||||
gpg --export --armor my@email.addr > my_email_addr.public.gpg-key
|
gpg --export --armor my@email.addr > my_email_addr.public.gpg-key
|
||||||
|
|
||||||
# Remove the *primary keypair* from your keyring
|
# Remove the *primary keypair* from your keyring
|
||||||
|
|
||||||
1. Export all subkeys from the new keypair to a file
|
1. Export all subkeys from the new keypair to a file
|
||||||
|
|
||||||
gpg --export-secret-subkeys my@email.addr > $HOME/.gnupg/subkeys
|
gpg --export-secret-subkeys my@email.addr > $HOME/.gnupg/subkeys
|
||||||
@ -60,6 +63,7 @@ Export the *primary keypair* (put these somewhere very safe along with revocatio
|
|||||||
gpg --list-secret-keys $HOME/.gnupg/secring.gpg
|
gpg --list-secret-keys $HOME/.gnupg/secring.gpg
|
||||||
|
|
||||||
# Revoking a *signing keypair*
|
# Revoking a *signing keypair*
|
||||||
|
|
||||||
Find the *primary keypair* and import it (preferably into an ephemeral system like a liveUSB)
|
Find the *primary keypair* and import it (preferably into an ephemeral system like a liveUSB)
|
||||||
|
|
||||||
gpg --import /path/to/my_email_addr.public.gpg-key /path/to/my_email_addr.private.gpg-key
|
gpg --import /path/to/my_email_addr.public.gpg-key /path/to/my_email_addr.private.gpg-key
|
||||||
@ -68,7 +72,6 @@ Find the *primary keypair* and import it (preferably into an ephemeral system li
|
|||||||
[ passphrase twice ]
|
[ passphrase twice ]
|
||||||
gpg> save
|
gpg> save
|
||||||
|
|
||||||
|
|
||||||
# Renew an expired or expiring keypair
|
# Renew an expired or expiring keypair
|
||||||
|
|
||||||
gpg --edit-key my@email.addr
|
gpg --edit-key my@email.addr
|
||||||
@ -101,6 +104,7 @@ Find the *primary keypair* and import it (preferably into an ephemeral system li
|
|||||||
gpg --keyserver pgp.mit.edu --search-key my@email.addr
|
gpg --keyserver pgp.mit.edu --search-key my@email.addr
|
||||||
|
|
||||||
# References
|
# References
|
||||||
|
|
||||||
[OpenPGP Best Practices](https://riseup.net/en/security/message-security/openpgp/best-practices#key-configuration)<br>
|
[OpenPGP Best Practices](https://riseup.net/en/security/message-security/openpgp/best-practices#key-configuration)<br>
|
||||||
[Github: Signing Commits](https://docs.github.com/en/enterprise-server@3.5/authentication/managing-commit-signature-verification/signing-commits)<br>
|
[Github: Signing Commits](https://docs.github.com/en/enterprise-server@3.5/authentication/managing-commit-signature-verification/signing-commits)<br>
|
||||||
[Braincoke's Log: Create a GPG Key](https://blog.braincoke.fr/security/create-a-gpg-key/)<br>
|
[Braincoke's Log: Create a GPG Key](https://blog.braincoke.fr/security/create-a-gpg-key/)<br>
|
||||||
|
@ -11,7 +11,6 @@ rc:
|
|||||||
|
|
||||||
To complete any of the examples below you will need access to a system providing the openQA client. Typically that will be a Fedora based system/container with the `openqa-client` package and it's (~239) dependencies installed.
|
To complete any of the examples below you will need access to a system providing the openQA client. Typically that will be a Fedora based system/container with the `openqa-client` package and it's (~239) dependencies installed.
|
||||||
|
|
||||||
|
|
||||||
## Access Requirement
|
## Access Requirement
|
||||||
|
|
||||||
### API `GET` access
|
### API `GET` access
|
||||||
@ -22,10 +21,9 @@ The {{ rc.prod }} openQA system allows unrestricted public access via it's web i
|
|||||||
|
|
||||||
In order to use the openQA client to interact with the {{ rc.prod }} openQA system for `POST` operations the following are required:
|
In order to use the openQA client to interact with the {{ rc.prod }} openQA system for `POST` operations the following are required:
|
||||||
|
|
||||||
- an account in good standing in the [{{ rc.prod }} Account Services](https://accounts.rockylinux.org) system,
|
- an account in good standing in the [{{ rc.prod }} Account Services](https://accounts.rockylinux.org) system,
|
||||||
- authorization for API `POST` access from the {{ rc.prod }} Testing Team, and
|
- authorization for API `POST` access from the {{ rc.prod }} Testing Team, and
|
||||||
- an [openQA API key](http://open.qa/docs/#_authentication) generated on the {{ rc.prod }} openQA system.
|
- an [openQA API key](https://open.qa/docs/#_authentication) generated on the {{ rc.prod }} openQA system.
|
||||||
|
|
||||||
|
|
||||||
## Configuring your openqa client
|
## Configuring your openqa client
|
||||||
|
|
||||||
@ -34,7 +32,7 @@ Per the openqa client command help you can configure your client to use your API
|
|||||||
The following example shows how to configure your client by the most common method used. It's possible to configure
|
The following example shows how to configure your client by the most common method used. It's possible to configure
|
||||||
multiple openqa client API keys in this way.
|
multiple openqa client API keys in this way.
|
||||||
|
|
||||||
```
|
```bash
|
||||||
$ mkdir -p ~/.config/openqa
|
$ mkdir -p ~/.config/openqa
|
||||||
|
|
||||||
$ vim ~/.config/openqa/client.conf
|
$ vim ~/.config/openqa/client.conf
|
||||||
@ -48,10 +46,9 @@ key = your_api_key
|
|||||||
secret = your_api_secret
|
secret = your_api_secret
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## Testing your openqa client installation
|
## Testing your openqa client installation
|
||||||
|
|
||||||
```
|
```bash
|
||||||
$ openqa-cli api --host http://openqa.rockylinux.org --pretty jobs/1
|
$ openqa-cli api --host http://openqa.rockylinux.org --pretty jobs/1
|
||||||
{
|
{
|
||||||
"job" : {
|
"job" : {
|
||||||
@ -118,7 +115,6 @@ $ openqa-cli api --host http://openqa.rockylinux.org --pretty jobs/1
|
|||||||
|
|
||||||
## References
|
## References
|
||||||
|
|
||||||
[openQA Documentation](http://open.qa/documentation/)
|
[openQA Documentation](https://open.qa/documentation/)
|
||||||
|
|
||||||
|
|
||||||
{% include 'content_bottom.md' %}
|
{% include 'content_bottom.md' %}
|
||||||
|
@ -17,7 +17,7 @@ To complete any of the examples please complete the API `POST` Access steps outl
|
|||||||
|
|
||||||
## Basic POST
|
## Basic POST
|
||||||
|
|
||||||
A basic `POST` can be used for any of the default test suites for the various {{ rc.prod }} media that are made available. The following examples show some of these standard `POST`s that are commonly used by our team and will be used to demonstrate how some minor variations
|
A basic `POST` can be used for any of the default test suites for the various {{ rc.prod }} media that are made available. The following examples show some of these standard `POST`s that are commonly used by our team and will be used to demonstrate how some minor variations.
|
||||||
|
|
||||||
### FLAVOR=boot-iso
|
### FLAVOR=boot-iso
|
||||||
|
|
||||||
@ -30,7 +30,7 @@ $ openqa-cli api -X POST isos ISO=Rocky-9.1-x86_64-boot.iso ARCH=x86_64 \
|
|||||||
|
|
||||||
### FLAVOR=minimal-iso
|
### FLAVOR=minimal-iso
|
||||||
|
|
||||||
This `POST` demonstrates how a different media type, in this case the minimal ISO, for an alternate {{ rc.prod }} version, in this case {{ rc.prod }} 8.7, can be triggered. As can be seen by this and the previous `POST` the `BUILD` variable will typically be designate the date, version and architecture of the test suite. Since the minimal ISO contains all packages required to conduct a ***minimal*** install of {{ rc.prod }} that is the behavior of this test suite.
|
This `POST` demonstrates how a different media type, in this case the minimal ISO, for an alternate {{ rc.prod }} version, in this case {{ rc.prod }} 8.7, can be triggered. As can be seen by this and the previous `POST` the `BUILD` variable will typically be designate the date, version and architecture of the test suite. Since the minimal ISO contains all packages required to conduct a ***minimal*** install of {{ rc.prod }} that is the behavior of this test suite.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ openqa-cli api -X POST isos ISO=Rocky-8.7-x86_64-minimal.iso ARCH=x86_64 \
|
$ openqa-cli api -X POST isos ISO=Rocky-8.7-x86_64-minimal.iso ARCH=x86_64 \
|
||||||
@ -48,7 +48,6 @@ $ openqa-cli api -X POST isos ISO=Rocky-9.1-20221214.1-x86_64-dvd.iso ARCH=x86_6
|
|||||||
|
|
||||||
These three test suites provide for the minimal testing of all ISOs produced for a given release of {{ rc.prod }}.
|
These three test suites provide for the minimal testing of all ISOs produced for a given release of {{ rc.prod }}.
|
||||||
|
|
||||||
|
|
||||||
## Advanced POST
|
## Advanced POST
|
||||||
|
|
||||||
In addition to the [Basic POSTs](#basic-post) described above there are additional default test suites that use the dvd ISO media and include substantially more test cases. Those include:
|
In addition to the [Basic POSTs](#basic-post) described above there are additional default test suites that use the dvd ISO media and include substantially more test cases. Those include:
|
||||||
@ -76,7 +75,6 @@ $ openqa-cli api -X POST isos ISO=Rocky-9.1-20221214.1-x86_64-dvd.iso ARCH=x86_6
|
|||||||
DISTRI=rocky FLAVOR=universal VERSION=9.1 CURRREL=9 BUILD=20230409-Rocky-9.1-x86_64.0
|
DISTRI=rocky FLAVOR=universal VERSION=9.1 CURRREL=9 BUILD=20230409-Rocky-9.1-x86_64.0
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## Collection of test suites by BUILD
|
## Collection of test suites by BUILD
|
||||||
|
|
||||||
A feature of openQA is that for a given job group test suites which use the same `BUILD` identifier are collected into a single view in the web UI.
|
A feature of openQA is that for a given job group test suites which use the same `BUILD` identifier are collected into a single view in the web UI.
|
||||||
@ -89,7 +87,6 @@ Thus, the examples show above which all use `BUILD=20230409-Rocky-9.1-x86_64.0`
|
|||||||
|
|
||||||
## References
|
## References
|
||||||
|
|
||||||
[openQA Documentation](http://open.qa/documentation/)
|
[openQA Documentation](https://open.qa/documentation/)
|
||||||
|
|
||||||
|
|
||||||
{% include 'content_bottom.md' %}
|
{% include 'content_bottom.md' %}
|
||||||
|
@ -25,7 +25,7 @@ The following example demonstrates the testing of an open Github pull request in
|
|||||||
|
|
||||||
***NOTE: The Github CLI tool (`gh`) is used to display PR information statically in this guide.***
|
***NOTE: The Github CLI tool (`gh`) is used to display PR information statically in this guide.***
|
||||||
|
|
||||||
```
|
```text
|
||||||
➜ os-autoinst-distri-rocky git:(develop) gh pr view 168
|
➜ os-autoinst-distri-rocky git:(develop) gh pr view 168
|
||||||
Serial console install #168
|
Serial console install #168
|
||||||
Merged • AlanMarshall wants to merge 1 commit into develop from serial_console • about 27 days ago
|
Merged • AlanMarshall wants to merge 1 commit into develop from serial_console • about 27 days ago
|
||||||
@ -57,7 +57,7 @@ Above is the information provided in the original PR and it includes tests perfo
|
|||||||
|
|
||||||
In practice it is useful to run `openqa-clone-custom-git-refspec` in `--verbose` and `--dry-run` mode to observe it's behavior even for the Basic cases...
|
In practice it is useful to run `openqa-clone-custom-git-refspec` in `--verbose` and `--dry-run` mode to observe it's behavior even for the Basic cases...
|
||||||
|
|
||||||
```
|
```bash
|
||||||
$ openqa-clone-custom-git-refspec --verbose --dry-run \
|
$ openqa-clone-custom-git-refspec --verbose --dry-run \
|
||||||
https://github.com/rocky-linux/os-autoinst-distri-rocky/pull/168 \
|
https://github.com/rocky-linux/os-autoinst-distri-rocky/pull/168 \
|
||||||
https://openqa.rockylinux.org/tests/16080 2>&1 | tee pr-168
|
https://openqa.rockylinux.org/tests/16080 2>&1 | tee pr-168
|
||||||
@ -65,7 +65,7 @@ $ openqa-clone-custom-git-refspec --verbose --dry-run \
|
|||||||
|
|
||||||
***NOTE: The full output of `openqa-clone-custom-git-refspece` will not be shown here.***
|
***NOTE: The full output of `openqa-clone-custom-git-refspece` will not be shown here.***
|
||||||
|
|
||||||
```
|
```diff
|
||||||
+ shift
|
+ shift
|
||||||
+ true
|
+ true
|
||||||
+ case "$1" in
|
+ case "$1" in
|
||||||
@ -114,10 +114,9 @@ What can be seen from the complete `--dry-run` output for `openqa-clone-custom-g
|
|||||||
|
|
||||||
Without using `--dry-run` the final `openqa-clone-job` command shown above will be run causing the job of interest to be cloned with additional `POST` variables that will cause the repository/branch referenced in the PR to be cloned into the test directory with important files referenced in the cloned job.
|
Without using `--dry-run` the final `openqa-clone-job` command shown above will be run causing the job of interest to be cloned with additional `POST` variables that will cause the repository/branch referenced in the PR to be cloned into the test directory with important files referenced in the cloned job.
|
||||||
|
|
||||||
|
|
||||||
### Run `openqa-clone-custom-git-refspec` without `--verbose --dry-run` mode...
|
### Run `openqa-clone-custom-git-refspec` without `--verbose --dry-run` mode...
|
||||||
|
|
||||||
```
|
```bash
|
||||||
$ openqa-clone-custom-git-refspec \
|
$ openqa-clone-custom-git-refspec \
|
||||||
https://github.com/rocky-linux/os-autoinst-distri-rocky/pull/168 \
|
https://github.com/rocky-linux/os-autoinst-distri-rocky/pull/168 \
|
||||||
https://openqa.rockylinux.org/tests/16080
|
https://openqa.rockylinux.org/tests/16080
|
||||||
@ -126,7 +125,7 @@ Created job #16119: rocky-9.1-universal-x86_64-Build20230329-Rocky-9.1-x86_64.0-
|
|||||||
|
|
||||||
### Cloned job information...
|
### Cloned job information...
|
||||||
|
|
||||||
```
|
```bash
|
||||||
$ openqa-cli api jobs/16119 --pretty
|
$ openqa-cli api jobs/16119 --pretty
|
||||||
{
|
{
|
||||||
"job" : {
|
"job" : {
|
||||||
@ -206,10 +205,9 @@ $ openqa-cli api jobs/16119 --pretty
|
|||||||
|
|
||||||
The following example demonstrates the testing of an open Github pull request in the {{ rc.prod }} openQA production system. The PR changes test code and supplies updated needles for the test.
|
The following example demonstrates the testing of an open Github pull request in the {{ rc.prod }} openQA production system. The PR changes test code and supplies updated needles for the test.
|
||||||
|
|
||||||
|
|
||||||
### Github PR information
|
### Github PR information
|
||||||
|
|
||||||
```
|
```text
|
||||||
➜ os-autoinst-distri-rocky git:(nazunalika/develop) gh pr view 162
|
➜ os-autoinst-distri-rocky git:(nazunalika/develop) gh pr view 162
|
||||||
|
|
||||||
Anaconda text install #162
|
Anaconda text install #162
|
||||||
@ -244,9 +242,8 @@ View this pull request on GitHub: https://github.com/rocky-linux/os-autoinst-dis
|
|||||||
|
|
||||||
### Run `openqa-clone-custom-git-refspec` in `--verbose --dry-run` mode
|
### Run `openqa-clone-custom-git-refspec` in `--verbose --dry-run` mode
|
||||||
|
|
||||||
```
|
```diff
|
||||||
$ openqa-clone-custom-git-refspec --verbose --dry-run https://github.com/rocky-linux/os-autoinst-d
|
$ openqa-clone-custom-git-refspec --verbose --dry-run https://github.com/rocky-linux/os-autoinst-distri-rocky/pull/162 https://openqa.rockylinux.org/tests/13371
|
||||||
istri-rocky/pull/162 https://openqa.rockylinux.org/tests/13371
|
|
||||||
+ shift
|
+ shift
|
||||||
+ true
|
+ true
|
||||||
+ case "$1" in
|
+ case "$1" in
|
||||||
@ -288,33 +285,40 @@ istri-rocky/pull/162 https://openqa.rockylinux.org/tests/13371
|
|||||||
|
|
||||||
This PR provides updated needles and the default behavior of `openqa-clone-custom-git-refspec` is to **not** provide an alternate location for `NEEDLES`. The `--verbose --dry-run` output needs to be modified to ensure the needles provided in the PR are used in the test.
|
This PR provides updated needles and the default behavior of `openqa-clone-custom-git-refspec` is to **not** provide an alternate location for `NEEDLES`. The `--verbose --dry-run` output needs to be modified to ensure the needles provided in the PR are used in the test.
|
||||||
|
|
||||||
|
|
||||||
### Modify `--verbose --dry-run` output to point to needles in the PR...
|
### Modify `--verbose --dry-run` output to point to needles in the PR...
|
||||||
|
|
||||||
Use output to modify clone job...
|
Use output to modify clone job...
|
||||||
|
|
||||||
#### original
|
#### original
|
||||||
```
|
|
||||||
$ /usr/bin/openqa-clone-job --skip-chained-deps --parental-inheritance --within-instance https://openqa.rockylinux.org 13371 _GROUP=0 TEST+=@AlanMarshall/os-autoinst-distri-rocky#anaconda-txt BUILD=AlanMarshall/os-autoinst-distri-rocky#162 CASEDIR=https://github.com/AlanMarshall/os-autoinst-distri-rocky.git#anaconda-txt PRODUCTDIR=os-autoinst-distri-rocky
|
```bash
|
||||||
|
$ /usr/bin/openqa-clone-job --skip-chained-deps --parental-inheritance --within-instance https://openqa.rockylinux.org \
|
||||||
|
13371 _GROUP=0 TEST+=@AlanMarshall/os-autoinst-distri-rocky#anaconda-txt \
|
||||||
|
BUILD=AlanMarshall/os-autoinst-distri-rocky#162 CASEDIR=https://github.com/AlanMarshall/os-autoinst-distri-rocky.git#anaconda-txt \
|
||||||
|
PRODUCTDIR=os-autoinst-distri-rocky
|
||||||
NEEDLES_DIR=rocky/needles
|
NEEDLES_DIR=rocky/needles
|
||||||
```
|
```
|
||||||
|
|
||||||
#### specify NEEDLES_DIR manually pointing at PR branch
|
#### specify NEEDLES_DIR manually pointing at PR branch
|
||||||
```
|
|
||||||
$ /usr/bin/openqa-clone-job --skip-chained-deps --parental-inheritance --within-instance https://o
|
```bash
|
||||||
penqa.rockylinux.org 13371 _GROUP=0 TEST+=@AlanMarshall/os-autoinst-distri-rocky#anaconda-txt BUILD=AlanMarshall/os-autoinst-distr
|
$ /usr/bin/openqa-clone-job --skip-chained-deps --parental-inheritance --within-instance https://openqa.rockylinux.org \
|
||||||
i-rocky#162 CASEDIR=https://github.com/AlanMarshall/os-autoinst-distri-rocky.git#anaconda-txt PRODUCTDIR=os-autoinst-distri-rocky
|
13371 _GROUP=0 TEST+=@AlanMarshall/os-autoinst-distri-rocky#anaconda-txt \
|
||||||
NEEDLES_DIR=https://github.com/AlanMarshall/os-autoinst-distri-rocky.git/needles#anaconda-txt
|
BUILD=AlanMarshall/os-autoinst-distri-rocky#162 CASEDIR=https://github.com/AlanMarshall/os-autoinst-distri-rocky.git#anaconda-txt \
|
||||||
|
PRODUCTDIR=os-autoinst-distri-rocky NEEDLES_DIR=https://github.com/AlanMarshall/os-autoinst-distri-rocky.git#anaconda-txt/needles
|
||||||
```
|
```
|
||||||
|
|
||||||
#### {{ rc.prod }} 9.1
|
#### {{ rc.prod }} 9.1
|
||||||
|
|
||||||
```
|
```bash
|
||||||
$ /usr/bin/openqa-clone-job --skip-chained-deps --parental-inheritance --within-instance https://openqa.rockylinux.org 13255 _GROUP=0 TEST+=@AlanMarshall/os-autoinst-distri-rocky#anaconda-txt BUILD=AlanMarshall/os-autoinst-distri-rocky#162 CASEDIR=https://github.com/AlanMarshall/os-autoinst-distri-rocky.git#anaconda-txt PRODUCTDIR=os-autoinst-distri-rocky NEEDLES_DIR=https://github.com/AlanMarshall/os-autoinst-distri-rocky.git#anaconda-txt/needles
|
$ /usr/bin/openqa-clone-job --skip-chained-deps --parental-inheritance --within-instance https://openqa.rockylinux.org \
|
||||||
|
13255 _GROUP=0 TEST+=@AlanMarshall/os-autoinst-distri-rocky#anaconda-txt \
|
||||||
|
BUILD=AlanMarshall/os-autoinst-distri-rocky#162 CASEDIR=https://github.com/AlanMarshall/os-autoinst-distri-rocky.git#anaconda-txt \
|
||||||
|
PRODUCTDIR=os-autoinst-distri-rocky NEEDLES_DIR=https://github.com/AlanMarshall/os-autoinst-distri-rocky.git#anaconda-txt/needles
|
||||||
Created job #14228: rocky-9.1-universal-x86_64-Build20230319-Rocky-9.1-x86_64.0-install_anaconda_text@64bit -> https://openqa.rockylinux.org/t14228
|
Created job #14228: rocky-9.1-universal-x86_64-Build20230319-Rocky-9.1-x86_64.0-install_anaconda_text@64bit -> https://openqa.rockylinux.org/t14228
|
||||||
```
|
```
|
||||||
|
|
||||||
```
|
```bash
|
||||||
$ openqa-cli api jobs/14228 --pretty
|
$ openqa-cli api jobs/14228 --pretty
|
||||||
{
|
{
|
||||||
"job" : {
|
"job" : {
|
||||||
@ -389,12 +393,15 @@ $ openqa-cli api jobs/14228 --pretty
|
|||||||
|
|
||||||
#### {{ rc.prod }} 8.7
|
#### {{ rc.prod }} 8.7
|
||||||
|
|
||||||
```
|
```bash
|
||||||
$ /usr/bin/openqa-clone-job --skip-chained-deps --parental-inheritance --within-instance https://openqa.rockylinux.org 13371 _GROUP=0 TEST+=@AlanMarshall/os-autoinst-distri-rocky#anaconda-txt BUILD=AlanMarshall/os-autoinst-distri-rocky#162 CASEDIR=https://github.com/AlanMarshall/os-autoinst-distri-rocky.git#anaconda-txt PRODUCTDIR=os-autoinst-distri-rocky NEEDLES_DIR=https://github.com/AlanMarshall/os-autoinst-distri-rocky.git#anaconda-txt/needles
|
$ /usr/bin/openqa-clone-job --skip-chained-deps --parental-inheritance --within-instance https://openqa.rockylinux.org \
|
||||||
|
13371 _GROUP=0 TEST+=@AlanMarshall/os-autoinst-distri-rocky#anaconda-txt \
|
||||||
|
BUILD=AlanMarshall/os-autoinst-distri-rocky#162 CASEDIR=https://github.com/AlanMarshall/os-autoinst-distri-rocky.git#anaconda-txt \
|
||||||
|
PRODUCTDIR=os-autoinst-distri-rocky NEEDLES_DIR=https://github.com/AlanMarshall/os-autoinst-distri-rocky.git#anaconda-txt/needles
|
||||||
Created job #14229: rocky-8.7-universal-x86_64-Build20230319-Rocky-8.7-x86_64.0-install_anaconda_text@64bit -> https://openqa.rockylinux.org/t14229
|
Created job #14229: rocky-8.7-universal-x86_64-Build20230319-Rocky-8.7-x86_64.0-install_anaconda_text@64bit -> https://openqa.rockylinux.org/t14229
|
||||||
```
|
```
|
||||||
|
|
||||||
```
|
```bash
|
||||||
$ openqa-cli api jobs/14229 --pretty
|
$ openqa-cli api jobs/14229 --pretty
|
||||||
{
|
{
|
||||||
"job" : {
|
"job" : {
|
||||||
|
@ -21,7 +21,7 @@ To complete any of the examples please complete the API `POST` Access steps outl
|
|||||||
|
|
||||||
First you might want to query the {{ rc.prod }} openQA system for the latest job ID for a specific job or test. The openQA client, hereafter refered to as `openqa-cli` will allow you to quickly do that via the API. Here is an example...
|
First you might want to query the {{ rc.prod }} openQA system for the latest job ID for a specific job or test. The openQA client, hereafter refered to as `openqa-cli` will allow you to quickly do that via the API. Here is an example...
|
||||||
|
|
||||||
```
|
```bash
|
||||||
$ openqa-cli api --host http://openqa.rockylinux.org jobs/overview groupid=0 distri=rocky version=9.1 test=install_default_upload latest=1 | jq '.'
|
$ openqa-cli api --host http://openqa.rockylinux.org jobs/overview groupid=0 distri=rocky version=9.1 test=install_default_upload latest=1 | jq '.'
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
@ -33,12 +33,11 @@ $ openqa-cli api --host http://openqa.rockylinux.org jobs/overview groupid=0 dis
|
|||||||
|
|
||||||
This basically says "give me the job id and name of the most recent `install_default_upload` test for {{ rc.prod }} 9.1".
|
This basically says "give me the job id and name of the most recent `install_default_upload` test for {{ rc.prod }} 9.1".
|
||||||
|
|
||||||
|
|
||||||
### Cloning a job "as-is"
|
### Cloning a job "as-is"
|
||||||
|
|
||||||
With that job id in hand you can now clone that job directly to your local openQA development system with...
|
With that job id in hand you can now clone that job directly to your local openQA development system with...
|
||||||
|
|
||||||
```
|
```bash
|
||||||
$ openqa-clone-job --from https://openqa.rockylinux.org --skip-download 22735
|
$ openqa-clone-job --from https://openqa.rockylinux.org --skip-download 22735
|
||||||
Cloning children of rocky-9.1-dvd-iso-x86_64-Build20230423-Rocky-9.1-x86_64.0-install_default_upload@64bit
|
Cloning children of rocky-9.1-dvd-iso-x86_64-Build20230423-Rocky-9.1-x86_64.0-install_default_upload@64bit
|
||||||
Created job #23: rocky-9.1-dvd-iso-x86_64-Build20230423-Rocky-9.1-x86_64.0-install_default_upload@64bit -> http://localhost/t23
|
Created job #23: rocky-9.1-dvd-iso-x86_64-Build20230423-Rocky-9.1-x86_64.0-install_default_upload@64bit -> http://localhost/t23
|
||||||
@ -48,14 +47,14 @@ Created job #23: rocky-9.1-dvd-iso-x86_64-Build20230423-Rocky-9.1-x86_64.0-insta
|
|||||||
|
|
||||||
Now you should have the same job running in your local instance...
|
Now you should have the same job running in your local instance...
|
||||||
|
|
||||||
```
|
```bash
|
||||||
$ openqa-cli api jobs/overview
|
$ openqa-cli api jobs/overview
|
||||||
[{"id":23,"name":"rocky-9.1-dvd-iso-x86_64-Build20230423-Rocky-9.1-x86_64.0-install_default_upload@64bit"}]
|
[{"id":23,"name":"rocky-9.1-dvd-iso-x86_64-Build20230423-Rocky-9.1-x86_64.0-install_default_upload@64bit"}]
|
||||||
```
|
```
|
||||||
|
|
||||||
### Basic job details
|
### Basic job details
|
||||||
|
|
||||||
```
|
```bash
|
||||||
$ openqa-cli api jobs/23 | jq '.'
|
$ openqa-cli api jobs/23 | jq '.'
|
||||||
{
|
{
|
||||||
"job": {
|
"job": {
|
||||||
@ -130,34 +129,30 @@ $ openqa-cli api jobs/23 | jq '.'
|
|||||||
|
|
||||||
***NOTE: In the above job information you can clearly see the job was cloned from `https://openqa.rockylinux.org/tests/22735`.
|
***NOTE: In the above job information you can clearly see the job was cloned from `https://openqa.rockylinux.org/tests/22735`.
|
||||||
|
|
||||||
|
|
||||||
## Advanced `openqa-clone-job`
|
## Advanced `openqa-clone-job`
|
||||||
|
|
||||||
You can, of course, perform more elaborate operations while cloneing a job either from your local instance or from the production instance. Typically, this might be done to modify some of the job POST variables in the cloned job while keeping all other variables unchanged.
|
You can, of course, perform more elaborate operations while cloneing a job either from your local instance or from the production instance. Typically, this might be done to modify some of the job POST variables in the cloned job while keeping all other variables unchanged.
|
||||||
|
|
||||||
|
|
||||||
### Changing variable during clone
|
### Changing variable during clone
|
||||||
|
|
||||||
Here is an example where the ISO is changed in the cloned job...
|
Here is an example where the ISO is changed in the cloned job...
|
||||||
|
|
||||||
```
|
```bash
|
||||||
$ openqa-clone-job --from https://openqa.rockylinux.org --skip-download 22735 ISO=Rocky-9.1-x86_64-dvd.iso
|
$ openqa-clone-job --from https://openqa.rockylinux.org --skip-download 22735 ISO=Rocky-9.1-x86_64-dvd.iso
|
||||||
Cloning children of rocky-9.1-dvd-iso-x86_64-Build20230423-Rocky-9.1-x86_64.0-install_default_upload@64bit
|
Cloning children of rocky-9.1-dvd-iso-x86_64-Build20230423-Rocky-9.1-x86_64.0-install_default_upload@64bit
|
||||||
Created job #24: rocky-9.1-dvd-iso-x86_64-Build20230423-Rocky-9.1-x86_64.0-install_default_upload@64bit -> http://localhost/t24
|
Created job #24: rocky-9.1-dvd-iso-x86_64-Build20230423-Rocky-9.1-x86_64.0-install_default_upload@64bit -> http://localhost/t24
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
### Job overview
|
### Job overview
|
||||||
|
|
||||||
```
|
```bash
|
||||||
$ openqa-cli api jobs/overview
|
$ openqa-cli api jobs/overview
|
||||||
[{"id":24,"name":"rocky-9.1-dvd-iso-x86_64-Build20230423-Rocky-9.1-x86_64.0-install_default_upload@64bit"}]
|
[{"id":24,"name":"rocky-9.1-dvd-iso-x86_64-Build20230423-Rocky-9.1-x86_64.0-install_default_upload@64bit"}]
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
### Job details
|
### Job details
|
||||||
|
|
||||||
```
|
```bash
|
||||||
$ openqa-cli api jobs/24 | jq '.'
|
$ openqa-cli api jobs/24 | jq '.'
|
||||||
{
|
{
|
||||||
"job": {
|
"job": {
|
||||||
@ -234,7 +229,7 @@ $ openqa-cli api jobs/24 | jq '.'
|
|||||||
|
|
||||||
You should notice that the only substantive difference between the two cloned jobs is the ISO that is used to run the `install_default_upload` test...
|
You should notice that the only substantive difference between the two cloned jobs is the ISO that is used to run the `install_default_upload` test...
|
||||||
|
|
||||||
```
|
```bash
|
||||||
$ openqa-cli api jobs/23 | jq '.job.settings.ISO'
|
$ openqa-cli api jobs/23 | jq '.job.settings.ISO'
|
||||||
"Rocky-9.1-20221214.1-x86_64-dvd.iso"
|
"Rocky-9.1-20221214.1-x86_64-dvd.iso"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user