You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on May 16, 2022. It is now read-only.
This is a bot that helps maintainers deliver their software to users. It is meant to watch github repositories for
4
4
release pull requests. The PR must be named in this format `0.1.0 release`. No other format is supported yet.
5
-
Once the PR is merged, bot will create a new github release. Changelog will be pulled from root of the
5
+
Once the PR is merged, bot will create a new Github release. Changelog will be pulled from root of the
6
6
repository and must be named `CHANGELOG.md`. Changelog for the new version must begin with version heading, i.e `# 0.1.0`.
7
7
Everything between this heading and the heading for previous version will be pulled into the changelog.
8
8
9
9
A `release-conf.yaml` file is required. See [Configuration](#configuration) section for details.
10
10
11
-
Once a release is complete, bot will upload this release to PyPi. Note that you have to setup your login details (see [Requirements](#requirements)).
11
+
Once a Github release is complete, bot will upload this release to PyPI. Note that you have to setup your login details (see [Requirements](#requirements)).
12
12
13
-
After PyPi release, if enabled in `release-conf.yaml`, bot will try to release on Fedora dist-git, on `master` branch and branches specified in configuration.
13
+
After PyPI release, if enabled in `release-conf.yaml`, bot will try to release on Fedora dist-git, on `master` branch and branches specified in configuration.
14
14
It should not create merge conflicts, but in case it does, you have to solve them first before attempting the release again.
15
15
16
16
17
17
# Configuration
18
-
Configuration is in a form of a yaml file. You can specify your config using `-c file.yaml` or `--configuration file.yaml`.
19
-
If you do not specify it using an argument, bot will try to find `conf.yaml` in current working directory.
20
-
Here are the configuration options:
18
+
There are two yaml configuration files, `conf.yaml` and `release-conf.yaml`.
19
+
`conf.yaml` must be accessible during bot initialization and specifies how to access Github repository,
20
+
while `release-conf.yaml` must be stored in the repository itself and specifies how to do a Github/PyPI/Fedora releases.
21
+
If the path to `conf.yaml` is not passed to bot with `-c/--configuration`, bot will try to find it in current working directory.
22
+
23
+
Here are the `conf.yaml` configuration options:
21
24
22
25
| Option | Meaning | Required |
23
26
|------------- |-------------|-------------|
@@ -27,12 +30,13 @@ Here are the configuration options:
27
30
|`fas_username`|[FAS](https://fedoraproject.org/wiki/Account_System) username. Only need for releasing on Fedora| No |
28
31
|`refresh_interval`| Time in seconds between checks on repository. Default is 180 | No |
29
32
30
-
Sample config can be found in this repository.
33
+
Sample config named [conf.yaml](conf.yaml)can be found in this repository.
31
34
32
-
Best option for this is creating a github account for this bot so you can keep track of what changes were made by bot and what are your own.
35
+
Regarding `github_token`, it's usually a good idea to create a Github account for the bot (and use its Github API token)
36
+
so you can keep track of what changes were made by bot and what are your own.
33
37
34
-
You also have to have a `release-conf.yaml` file in the root of your project repository.
35
-
Here are the possible options:
38
+
You also have to have a `release-conf.yaml` file in the root of your project repository.
39
+
Here are possible options:
36
40
37
41
| Option | Meaning | Required |
38
42
|---------------|---------------|---------------|
@@ -46,9 +50,13 @@ Here are the possible options:
46
50
Sample config named [release-conf-example.yaml](release-conf-example.yaml) can be found in this repository.
47
51
48
52
# Requirements
49
-
Releasing to PyPi requires to have `wheel` package both for python 2 and python 3, therefore please install `requirements.txt` with both versions of `pip`.
50
-
You also have to setup your PyPi login details in `$HOME/.pypirc` as described in [PyPi documentation](https://packaging.python.org/tutorials/distributing-packages/#create-an-account)
51
-
If you are releasing to Fedora, you will need to have an active kerberos ticket while the bot runs. Also, `fedpkg` requires that you have ssh key in your keyring, that you uploaded to FAS.
53
+
Releasing to PyPI requires to have `wheel` package both for python 2 and python 3,
54
+
therefore please install `requirements.txt` with both versions of `pip`.
55
+
You also have to setup your PyPI login details in `$HOME/.pypirc`
56
+
as described in [PyPI documentation](https://packaging.python.org/tutorials/distributing-packages/#create-an-account).
57
+
If you are releasing to Fedora, you will need to have an active kerberos ticket while the bot runs
58
+
or specify path to kerberos keytab file with `-k/--keytab`.
59
+
Also, `fedpkg` requires that you have ssh key in your keyring, that you uploaded to FAS.
52
60
53
61
# Docker image
54
62
To make it easier to run this, release-bot is available as an [source-to-image](https://github.com/openshift/source-to-image) builder image. You need to setup a git repository, where you'll store the `conf.yaml` and `.pypirc` files. If you are releasing on Fedora, you will also need to add `id_rsa` (a private ssh key that you configured in FAS) and `fedora.keytab` (kerberos keytab for fedora). If this is not a local repository, make sure it's private so you prevent any private info leaking out. You can then create the final image like this:
0 commit comments