forked from suse-edge/Factory
39 lines
2.2 KiB
Markdown
39 lines
2.2 KiB
Markdown
# Factory
|
|
|
|
Contains the definition of the packages built on OBS for the SUSE Edge Solution (WIP)
|
|
|
|
This repository is linked to an OBS project: <https://build.opensuse.org/project/show/isv:SUSE:Edge:Factory>
|
|
Every directory in this repository represents a package in that OBS project, those should be synced automatically from this repository.
|
|
|
|
## Adding a package
|
|
|
|
To add a package, first create a directory with your package as you intend it in OBS.
|
|
|
|
Then run the `.obs/add_package.py` script to create the package in the OBS project and add the required elements to the synchronization workflow.
|
|
This script is using the `osc` command behind the scenes, so ensure you have it installed and correctly configured, as well as you have the correct permissions to create a new package in the project.
|
|
|
|
You will then get asked to push your changes.
|
|
|
|
## Testing a fork or a development branch
|
|
|
|
You can create a project in your home space in OBS, use the same prjconf as the one of "isv:SUSE:Edge:Factory", and copy the repositories part of the metadata (adjust self references).
|
|
Then add a scmsync stanza to your metadata like this (adjust repository path and branch):
|
|
|
|
```xml
|
|
<scmsync>https://src.opensuse.org/suse-edge/Factory#main</scmsync>
|
|
```
|
|
|
|
## Cutting a release version branch
|
|
|
|
1. Do the appropriate git branch command
|
|
2. Change the project path in `.obs/common.py` file (e.g. from `isv:SUSE:Edge:Factory` to `isv:SUSE:Edge:3.2`)
|
|
3. Change the branch reference in `.obs/common.py` file (e.g. from `main` to `3.2`)
|
|
4. Edit the `.obs/workflows.yml` file to change the references to the correct projects
|
|
5. Commit those changes to the new branch and push the new branch
|
|
6. Create the base and to-test projects (e.g. `isv:SUSE:Edge:3.2` and `isv:SUSE:Edge:3.2:ToTest`), use the `isv:SUSE:Edge:Factory` projects as example for metadata part
|
|
7. Use the prjconf of Factory in all those projects
|
|
8. Run the `.obs/sync_packages.py` script to create all the packages in the base project
|
|
9. Go take a few cups of coffee/tea/mate/... while waiting for OBS to build everything
|
|
10. Once built do an `osc release` of the project for it to be copied over in the `ToTest` section
|
|
11. Hand over to QA to test whatever is in `ToTest`. (You can continue to work on the base branch if needed meanwhile)
|