diff --git a/README.md b/README.md index 9402047..0d6fd20 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,10 @@ This is a fork of [wirgen/portainer-stack-redeploy-action](https://github.com/wi ID of endpoint (environment). Required if your stack is not in local environment +### `repositoryAuthentication` + +Use stored credentials to pull docker-compose.yaml from git repository. When credentials are stored, but this is not set to `true`, the action will fail + ### `environment` Environment variables to set on the stack. When omitted, all existing variables will be cleared from the stack. Must be input as a JSON String; one array of objects each with the keys `name` and `value` diff --git a/action.yml b/action.yml index f21e78f..da3fd6d 100644 --- a/action.yml +++ b/action.yml @@ -16,12 +16,16 @@ inputs: description: 'Endpoint ID' required: false default: '' + repositoryAuthentication: + description: 'Use stored credentials to pull docker-compose.yaml from git repository' + required: false + default: false environment: description: 'Environment variables' required: false runs: - using: 'node16' + using: 'node20' main: 'dist/index.js' branding: diff --git a/dist/index.js b/dist/index.js index a01500e..147bf1f 100644 --- a/dist/index.js +++ b/dist/index.js @@ -2819,10 +2819,13 @@ var __webpack_exports__ = {}; (() => { const core = __nccwpck_require__(186) +console.log('Preparing stack deployment') + let portainerUrl = core.getInput("portainerUrl") const accessToken = core.getInput("accessToken") const stackId = parseInt(core.getInput("stackId")) const endpointId = parseInt(core.getInput("endpointId")) +const repositoryAuthentication = core.getInput("repositoryAuthentication") const environmentVariables = core.getInput("environment") if (isNaN(stackId)) { @@ -2853,14 +2856,17 @@ const postDataObject = { pullImage: true, } -console.dir(environmentVariables) +if (repositoryAuthentication === true || repositoryAuthentication === 'true') { + postDataObject.repositoryAuthentication = true +} + if (environmentVariables !== undefined && environmentVariables !== "") { postDataObject.env = JSON.parse(environmentVariables) } const postData = JSON.stringify(postDataObject) -console.dir(postData) +console.log(`Deploying stack ${stackId} on portainer host ${portainerUrl} ${postDataObject.env ? 'With environment variables ' + JSON.stringify(postDataObject.env) : 'clearing all environment variables.'}`) const req = client.request(`${portainerUrl}/api/stacks/${stackId}/git/redeploy` + (isNaN(endpointId) ? "" : `?endpointId=${endpointId}`), { method: "PUT", @@ -2874,6 +2880,7 @@ const req = client.request(`${portainerUrl}/api/stacks/${stackId}/git/redeploy` core.setFailed(res.statusMessage) process.exit(2) } + console.log('Stack deployed successfully') }) .on("error", (error) => { core.setFailed(error.message) diff --git a/index.js b/index.js index 84a70a7..19d693a 100644 --- a/index.js +++ b/index.js @@ -1,9 +1,12 @@ const core = require("@actions/core") +console.log('Preparing stack deployment') + let portainerUrl = core.getInput("portainerUrl") const accessToken = core.getInput("accessToken") const stackId = parseInt(core.getInput("stackId")) const endpointId = parseInt(core.getInput("endpointId")) +const repositoryAuthentication = core.getInput("repositoryAuthentication") const environmentVariables = core.getInput("environment") if (isNaN(stackId)) { @@ -34,14 +37,17 @@ const postDataObject = { pullImage: true, } -console.dir(environmentVariables) +if (repositoryAuthentication === true || repositoryAuthentication === 'true') { + postDataObject.repositoryAuthentication = true +} + if (environmentVariables !== undefined && environmentVariables !== "") { postDataObject.env = JSON.parse(environmentVariables) } const postData = JSON.stringify(postDataObject) -console.dir(postData) +console.log(`Deploying stack ${stackId} on portainer host ${portainerUrl} ${postDataObject.env ? 'With environment variables ' + JSON.stringify(postDataObject.env) : 'clearing all environment variables.'}`) const req = client.request(`${portainerUrl}/api/stacks/${stackId}/git/redeploy` + (isNaN(endpointId) ? "" : `?endpointId=${endpointId}`), { method: "PUT", @@ -55,6 +61,7 @@ const req = client.request(`${portainerUrl}/api/stacks/${stackId}/git/redeploy` core.setFailed(res.statusMessage) process.exit(2) } + console.log('Stack deployed successfully') }) .on("error", (error) => { core.setFailed(error.message)