diff --git a/README.md b/README.md index a2430a0..f6bf35a 100644 --- a/README.md +++ b/README.md @@ -154,6 +154,8 @@ jobs: if: startsWith(github.ref, 'refs/tags/') with: body_path: ${{ github.workflow }}-CHANGELOG.txt + env: + GITHUB_REPOSITORY: my_gh_org/my_gh_repo ``` ### ๐Ÿ’… Customizing @@ -162,18 +164,17 @@ jobs: The following are optional as `step.with` keys -| Name | Type | Description | -|---------------------------|---------|---------------------------------------------------------------------------------------------| -| `body` | String | Text communicating notable changes in this release | -| `body_path` | String | Path to load text communicating notable changes in this release | -| `draft` | Boolean | Indicator of whether or not this release is a draft | -| `prerelease` | Boolean | Indicator of whether or not is a prerelease | -| `files` | String | Newline-delimited globs of paths to assets to upload for release | -| `name` | String | Name of the release. defaults to tag name | -| `tag_name` | String | Name of a tag. defaults to `github.ref` | -| `repository` | String | Name of a target repository in `/` format. Defaults to the current repository. | -| `fail_on_unmatched_files` | Boolean | Indicator of whether to fail if any of the `files` globs match nothing | -| `token` | String | Secret GitHub Personal Access Token. Defaults to `${{ github.token }}` | +| Name | Type | Description | +|---------------------------|---------|-----------------------------------------------------------------------| +| `body` | String | Text communicating notable changes in this release | +| `body_path` | String | Path to load text communicating notable changes in this release | +| `draft` | Boolean | Indicator of whether or not this release is a draft | +| `prerelease` | Boolean | Indicator of whether or not is a prerelease | +| `files` | String | Newline-delimited globs of paths to assets to upload for release | +| `name` | String | Name of the release. defaults to tag name | +| `tag_name` | String | Name of a tag. defaults to `github.ref` | +| `fail_on_unmatched_files` | Boolean | Indicator of whether to fail if any of the `files` globs match nothing| +| `token` | String | Secret GitHub Personal Access Token. Defaults to `${{ github.token }}`| ๐Ÿ’กWhen providing a `body` and `body_path` at the same time, `body_path` will be attempted first, then falling back on `body` if the path can not be read from. @@ -181,18 +182,20 @@ The following are optional as `step.with` keys The following outputs can be accessed via `${{ steps..outputs }}` from this action -| Name | Type | Description | -|-------------|---------|--------------------------------| -| `url` | String | Github.com URL for the release | +| Name | Type | Description | +|-------------|---------|-----------------------------------------------------------------| +| `url` | String | Github.com URL for the release | +| `upload_url`| String | URL for uploading assets to the release | #### environment variables The following `step.env` keys are allowed as a fallback but deprecated in favor of using inputs. -| Name | Description | -|----------------|---------------------------------------| -| `GITHUB_TOKEN` | GITHUB_TOKEN as provided by `secrets` | +| Name | Description | +|----------------|------------------------------------------------------------------------------------------------| +| `GITHUB_TOKEN` | GITHUB_TOKEN as provided by `secrets` | +| `GITHUB_REPOSITORY` | Name of a target repository in `/` format. defaults to the current repository| > **โš ๏ธ Note:** This action was previously implemented as a Docker container, limiting its use to GitHub Actions Linux virtual environments only. With recent releases, we now support cross platform usage. You'll need to remove the `docker://` prefix in these versions diff --git a/__tests__/util.test.ts b/__tests__/util.test.ts index 5a7a268..a2efd9e 100644 --- a/__tests__/util.test.ts +++ b/__tests__/util.test.ts @@ -58,9 +58,9 @@ describe("util", () => { }) ); }); - it("defaults to body when both body and body path are provided", () => { + it("defaults to body path when both body and body path are provided", () => { assert.equal( - "foo", + "bar", releaseBody({ github_ref: "", github_repository: "", diff --git a/action.yml b/action.yml index 74a5d94..019a23f 100644 --- a/action.yml +++ b/action.yml @@ -39,6 +39,8 @@ env: outputs: url: description: 'URL to the Release HTML Page' + upload_url: + description: 'URL for uploading assets to the release' runs: using: 'node12' main: 'dist/index.js' diff --git a/src/main.ts b/src/main.ts index 47ae8b8..df7264e 100644 --- a/src/main.ts +++ b/src/main.ts @@ -55,6 +55,7 @@ async function run() { } console.log(`๐ŸŽ‰ Release ready at ${rel.html_url}`); setOutput("url", rel.html_url); + setOutput("upload_url", rel.upload_url); } catch (error) { setFailed(error.message); } diff --git a/src/util.ts b/src/util.ts index 35e0d80..b0aa59c 100644 --- a/src/util.ts +++ b/src/util.ts @@ -20,9 +20,9 @@ export interface Config { export const releaseBody = (config: Config): string | undefined => { return ( - config.input_body || (config.input_body_path && - readFileSync(config.input_body_path).toString("utf8")) + readFileSync(config.input_body_path).toString("utf8")) || + config.input_body ); };