diff --git a/README.md b/README.md index 4a7e9abb..11d62ece 100644 --- a/README.md +++ b/README.md @@ -252,6 +252,8 @@ jobs: This is the same as `deactivate-env`, except deletes the environment entirely. See [`step: deactivate-env`](#step-deactivate-env) for more details. +Note that the default `GITHUB_TOKEN` does not allow environment deletion - you have to set a personal access token and provide it in the `token` input. + Refer to the [core configuration](#configuration) for available [`inputs`](https://help.github.com/en/articles/workflow-syntax-for-github-actions#jobsjob_idstepswith).
diff --git a/src/lib/delete.ts b/src/lib/delete.ts index 88429341..9281bda9 100644 --- a/src/lib/delete.ts +++ b/src/lib/delete.ts @@ -17,24 +17,31 @@ async function deleteEnvironment( coreArgs: { environment }, } = context; const deployments = await deactivateEnvironment(github, context); - if (!deployments) { - return; - } - const existing = deployments.data.length; - for (let i = 0; i < existing; i++) { - const deployment = deployments.data[i]; - log.info( - `${environment}.${deployment.id}: deleting deployment (${deployment.sha})"` - ); - await github.rest.repos.deleteDeployment({ - owner, - repo, - deployment_id: deployment.id, - }); - log.debug(`${environment}.${deployment.id} deleted`); + + if (deployments) { + const existing = deployments.data.length; + for (let i = 0; i < existing; i++) { + const deployment = deployments.data[i]; + log.info( + `${environment}.${deployment.id}: deleting deployment (${deployment.sha})"` + ); + await github.rest.repos.deleteDeployment({ + owner, + repo, + deployment_id: deployment.id, + }); + log.debug(`${environment}.${deployment.id} deleted`); + } + + log.info(`${environment}: ${existing} deployments deleted`); } - log.info(`${environment}: ${existing} deployments deleted`); + await github.rest.repos.deleteAnEnvironment({ + owner: context.owner, + repo: context.repo, + environment_name: environment, + }); + log.info(`${environment}: environment deleted`); } export default deleteEnvironment;