From 2bf1c08fb09d805750cbf74a2a3ad836bbfb3f41 Mon Sep 17 00:00:00 2001 From: jbristowe Date: Wed, 15 Sep 2021 10:09:40 +1000 Subject: [PATCH] feat: added support for packages input --- README.md | 1 + action.yml | 6 ++++-- src/create-release.ts | 8 +++++--- src/input-parameters.ts | 4 +++- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 6aaa04d6..b07350f1 100644 --- a/README.md +++ b/README.md @@ -81,6 +81,7 @@ The following inputs are optional: | `no_deploy_after` | Time at which scheduled deployment should expire, specified as any valid DateTimeOffset format, and assuming the time zone is the current local time zone. | | | `no_raw_log` | Print the raw log of failed tasks. | `false` | | `package` | The version number to use for a package in the release (format: `StepName:Version`, `PackageID:Version`, or `StepName:PackageName:Version`). | | +| `packages` | Multi-line list of version numbers to use for a package in the release (format: `StepName:Version`, `PackageID:Version`, or `StepName:PackageName:Version`). | | | `package_prerelease` | Pre-release for latest version of all packages to use for this release. | | | `package_version` | The version number of all packages to use for this release. | | | `packages_folder` | The folder designated for containing packages. | | diff --git a/action.yml b/action.yml index 115b5995..ba198007 100644 --- a/action.yml +++ b/action.yml @@ -1,7 +1,7 @@ name: 'Create Release in Octopus Deploy' description: 'GitHub Action to create a release in Octopus Deploy' author: 'Octopus Deploy' -branding: +branding: color: 'blue' icon: 'package' @@ -69,6 +69,8 @@ inputs: description: 'Pre-release for latest version of all packages to use for this release.' package_version: description: 'The version number of all packages to use for this release.' + packages: + description: 'A multi-line list of version numbers to use for a package in the release. Format: StepName:Version or PackageID:Version or StepName:PackageName:Version. StepName, PackageID, and PackageName can be replaced with an asterisk ("*"). An asterisk will be assumed for StepName, PackageID, or PackageName if they are omitted.' packages_folder: description: 'The folder designated for containing packages.' password: @@ -120,4 +122,4 @@ inputs: runs: using: 'node12' - main: 'dist/index.js' \ No newline at end of file + main: 'dist/index.js' diff --git a/src/create-release.ts b/src/create-release.ts index 429f2593..715f9add 100644 --- a/src/create-release.ts +++ b/src/create-release.ts @@ -1,6 +1,6 @@ -import {ExecOptions, exec} from '@actions/exec' -import {info, setFailed} from '@actions/core' -import {InputParameters} from './input-parameters' +import { ExecOptions, exec } from '@actions/exec' +import { info, setFailed } from '@actions/core' +import { InputParameters } from './input-parameters' function getArgs(parameters: InputParameters): string[] { info('🔣 Parsing inputs...') @@ -49,6 +49,8 @@ function getArgs(parameters: InputParameters): string[] { if (parameters.noRawLog) args.push(`--noRawLog`) if (parameters.package.length > 0) args.push(`--package=${parameters.package}`) + if (parameters.packages.length > 0) + parameters.packages.map(p => args.push(`--package=${p}`)) if (parameters.packagePrerelease.length > 0) args.push(`--packagePrerelease=${parameters.packagePrerelease}`) if (parameters.packageVersion.length > 0) diff --git a/src/input-parameters.ts b/src/input-parameters.ts index 6b01d5c5..4fc05713 100644 --- a/src/input-parameters.ts +++ b/src/input-parameters.ts @@ -1,4 +1,4 @@ -import {getBooleanInput, getInput} from '@actions/core' +import {getBooleanInput, getInput, getMultilineInput} from '@actions/core' export interface InputParameters { apiKey: string @@ -25,6 +25,7 @@ export interface InputParameters { noRawLog: boolean package: string packagePrerelease: string + packages: string[] packageVersion: string packagesFolder: string password: string @@ -75,6 +76,7 @@ export function get(): InputParameters { noDeployAfter: getInput('no_deploy_after'), noRawLog: getBooleanInput('no_raw_log'), package: getInput('package'), + packages: getMultilineInput('packages'), packagePrerelease: getInput('package_prerelease'), packageVersion: getInput('package_version'), packagesFolder: getInput('packages_folder'),