-
Notifications
You must be signed in to change notification settings - Fork 43
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update README to be less wrong and more helpful
- Fix the wording to talk about this Action - Fix the details in the example workflow - Complete the example by including build and upload steps
- Loading branch information
1 parent
2aa5c6d
commit 2d16373
Showing
1 changed file
with
30 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,43 +1,59 @@ | ||
# GitHub Action - Get a Releases | ||
|
||
This GitHub Action (written in JavaScript) wraps the [GitHub Release API](https://developer.github.com/v3/repos/releases/), specifically the [Get a Release](https://developer.github.com/v3/repos/releases/#create-a-release) endpoint, to allow you to leverage GitHub Actions to get releases. | ||
|
||
## Usage | ||
|
||
### Pre-requisites | ||
Create a workflow `.yml` file in your `.github/workflows` directory. An [example workflow](#example-workflow---create-a-release) is available below. For more information, reference the GitHub Help Documentation for [Creating a workflow file](https://help.github.com/en/articles/configuring-a-workflow#creating-a-workflow-file). | ||
|
||
Create a workflow `.yml` file in your `.github/workflows` directory. An [example workflow](#example-workflow) is available below. My [yj](https://github.com/bruceadams/yj) project uses this Action, see [release.yml](https://github.com/bruceadams/yj/blob/main/.github/workflows/release.yml). For more information, reference the GitHub Help Documentation for [Creating a workflow file](https://help.github.com/en/articles/configuring-a-workflow#creating-a-workflow-file). | ||
|
||
This Action requires that the environment variable `GITHUB_TOKEN` be set correctly. | ||
|
||
### Outputs | ||
|
||
For more information on these outputs, see the [API Documentation](https://developer.github.com/v3/repos/releases/#response-4) for an example of what these outputs look like | ||
|
||
- `id`: The release ID | ||
- `html_url`: The URL users can navigate to in order to view the release. i.e. `https://github.com/octocat/Hello-World/releases/v1.0.0` | ||
- `upload_url`: The URL for uploading assets to the release, which could be used by GitHub Actions for additional uses, for example the [`@actions/upload-release-asset`](https://www.github.com/actions/upload-release-asset) GitHub Action | ||
|
||
### Example workflow - get a release | ||
On every `push` to a tag matching the pattern `v*`, [create a release](https://developer.github.com/v3/repos/releases/#create-a-release): | ||
### Example workflow | ||
|
||
Everytime a new release is created, build a binary for the release and upload it to the release on Github. This example is building and uploading a Linux binary for a Rust executable. | ||
|
||
```yaml | ||
on: | ||
push: | ||
# Sequence of patterns matched against refs/tags | ||
tags: | ||
- 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10 | ||
|
||
name: Create Release | ||
release: | ||
types: [created] | ||
|
||
env: | ||
GITHUB_TOKEN: ${{ github.token }} | ||
|
||
jobs: | ||
build: | ||
name: Get Release | ||
name: Build release binary | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@master | ||
- name: Get Release | ||
id: get | ||
uses: bruceadams/get-release@v1 | ||
uses: actions/checkout@v2 | ||
|
||
- name: Get release | ||
id: get_release | ||
uses: bruceadams/[email protected] | ||
|
||
- name: Build binary | ||
run: cargo build --release --verbose | ||
|
||
- name: Upload release binary | ||
uses: actions/[email protected] | ||
with: | ||
upload_url: ${{ steps.get_release.outputs.upload_url }} | ||
asset_path: ./target/release/my-widget | ||
asset_name: my-widget | ||
asset_content_type: application/octet-stream | ||
``` | ||
## License | ||
The scripts and documentation in this project are released under the [MIT License](LICENSE) |