mirror of
https://github.com/MedzikUser/go-github-selfupdate.git
synced 2024-08-15 03:25:29 +00:00
describe how to run tests and about CI
This commit is contained in:
parent
02a5d46e86
commit
281445119d
1 changed files with 40 additions and 6 deletions
46
README.md
46
README.md
|
@ -8,7 +8,8 @@ Self-Update Mechanism for Go Commands using GitHub
|
|||
|
||||
[go-github-selfupdate][] is a Go library to provide self-update mechanism to command line tools.
|
||||
|
||||
Go does not provide the way to install/update the stable version of tools. By default, Go command line tools are updated
|
||||
Go does not provide the way to install/update the stable version of tools. By default, Go command line
|
||||
tools are updated:
|
||||
|
||||
- using `go get -u` (updating to HEAD)
|
||||
- using system's package manager (depending on the platform)
|
||||
|
@ -18,8 +19,10 @@ By using this library, you will get 4th choice:
|
|||
|
||||
- from your command line tool directly (and automatically)
|
||||
|
||||
go-github-selfupdate detects the information of the latest release via [GitHub Releases API][] and check the current version.
|
||||
If newer version than itself is detected, it downloads released binary from GitHub and replaces itself.
|
||||
[go-github-selfupdate][] detects the information of the latest release via [GitHub Releases API][] and
|
||||
check the current version.
|
||||
If newer version than itself is detected, it downloads released binary from GitHub and replaces
|
||||
itself.
|
||||
|
||||
- Automatically detects the latest version of released binary on GitHub
|
||||
- Retrieve the proper binary for the OS and arch where the binary is running
|
||||
|
@ -63,7 +66,8 @@ $ selfupdate-example -selfupdate
|
|||
|
||||
It should replace itself and finally shows a message containing release notes.
|
||||
|
||||
Please check the binary version is updated to `v1.2.4` with `-version`. The binary is up-to-date. So running `-selfupdate` again only shows 'Current binary is the latest version'.
|
||||
Please check the binary version is updated to `v1.2.4` with `-version`. The binary is up-to-date.
|
||||
So running `-selfupdate` again only shows 'Current binary is the latest version'.
|
||||
|
||||
### Real World Examples
|
||||
|
||||
|
@ -282,9 +286,33 @@ In summary, structure of releases on GitHub looks like:
|
|||
- ... (Other binaries for v1.1.3)
|
||||
- ... (older versions)
|
||||
|
||||
Tags which don't contain a version number are ignored (i.e. `nightly`). And releases marked as `pre-release` are also ignored.
|
||||
Tags which don't contain a version number are ignored (i.e. `nightly`). And releases marked
|
||||
as `pre-release` are also ignored.
|
||||
|
||||
### Debugging
|
||||
### Development
|
||||
|
||||
#### Running tests
|
||||
|
||||
All library sources are put in `/selfupdate` directory. So you can run tests as following
|
||||
at the top of the repository:
|
||||
|
||||
```
|
||||
$ go test -v ./selfupdate
|
||||
```
|
||||
|
||||
Some tests are not run without setting a GitHub API token because they call GitHub API too many times.
|
||||
To run them, please generate an API token and set it to an environment variable.
|
||||
|
||||
```
|
||||
$ export GITHUB_TOKEN="{token generated by you}"
|
||||
$ go test -v ./selfupdate
|
||||
```
|
||||
|
||||
Above command run almost all tests and it's enough to check the behavior before creating a pull request.
|
||||
Some tests are still not tested because they depend on my personal API access token, though; for repositories
|
||||
on GitHub Enterprise or private repositories on GitHub.
|
||||
|
||||
#### Debugging
|
||||
|
||||
This library can output logs for debugging. By default, logger is disabled.
|
||||
You can enable the logger by following and can know the details of the self update.
|
||||
|
@ -293,6 +321,12 @@ You can enable the logger by following and can know the details of the self upda
|
|||
selfupdate.EnableLog()
|
||||
```
|
||||
|
||||
#### CI
|
||||
|
||||
Tests run on CIs (Travis CI, Appveyor) are run with the token I generated. However, because of security
|
||||
reason, it is not used for the tests for pull requests. In the tests, a GitHub API token is not set and
|
||||
API rate limit is often exceeding. So please ignore the test failures on creating a pull request.
|
||||
|
||||
## Dependencies
|
||||
|
||||
This library utilizes [go-github][] to retrieve the information of releases and [go-update][] to replace
|
||||
|
|
Loading…
Reference in a new issue