Merge branch 'release/2.21' into fix/BE-11057/compose-file-rm

pull/12064/head
andres-portainer 2024-08-07 18:35:20 -03:00
commit a6f737d019
4 changed files with 24 additions and 8 deletions

View File

@ -52,5 +52,11 @@ jobs:
- uses: actions/setup-go@v3
with:
go-version: ${{ env.GO_VERSION }}
- name: Install docker-compose
run: |
sudo apt-get update
sudo apt-get install docker-compose
- name: Run tests
run: make test-server

View File

@ -97,7 +97,6 @@ func (service *PendingActionsService) execute(environmentID portainer.EndpointID
if len(pendingActions) > 0 {
log.Debug().Msgf("Found %d pending actions", len(pendingActions))
log.Debug().Msgf("PendingActions %+v", pendingActions)
}
for i, endpointPendingAction := range pendingActions {

View File

@ -31,6 +31,7 @@ const (
type unpackerCmdBuilderOptions struct {
pullImage bool
prune bool
forceRecreate bool
composeDestination string
registries []portainer.Registry
}
@ -62,12 +63,13 @@ func (d *stackDeployer) buildUnpackerCmdForStack(stack *portainer.Stack, operati
return fn(stack, opts, registriesStrings, envStrings), nil
}
// deploy [-u username -p password] [--skip-tls-verify] [--env KEY1=VALUE1 --env KEY2=VALUE2] <git-repo-url> <ref> <project-name> <destination> <compose-file-path> [<more-file-paths>...]
// deploy [-u username -p password] [--skip-tls-verify] [--force-recreate] [-k] [--env KEY1=VALUE1 --env KEY2=VALUE2] <git-repo-url> <ref> <project-name> <destination> <compose-file-path> [<more-file-paths>...]
func buildDeployCmd(stack *portainer.Stack, opts unpackerCmdBuilderOptions, registries []string, env []string) []string {
cmd := []string{}
cmd = append(cmd, UnpackerCmdDeploy)
cmd = appendGitAuthIfNeeded(cmd, stack)
cmd = appendSkipTLSVerifyIfNeeded(cmd, stack)
cmd = appendForceRecreateIfNeeded(cmd, opts.forceRecreate)
cmd = append(cmd, env...)
cmd = append(cmd, registries...)
cmd = append(cmd, stack.GitConfig.URL)
@ -124,12 +126,13 @@ func buildComposeStopCmd(stack *portainer.Stack, opts unpackerCmdBuilderOptions,
return cmd
}
// swarm-deploy [-u username -p password] [--skip-tls-verify] [-f] [-r] [--env KEY1=VALUE1 --env KEY2=VALUE2] <git-repo-url> <git-ref> <project-name> <destination> <compose-file-path> [<more-file-paths>...]
// swarm-deploy [-u username -p password] [--skip-tls-verify] [--force-recreate] [-f] [-r] [-k] [--env KEY1=VALUE1 --env KEY2=VALUE2] <git-repo-url> <git-ref> <project-name> <destination> <compose-file-path> [<more-file-paths>...]
func buildSwarmDeployCmd(stack *portainer.Stack, opts unpackerCmdBuilderOptions, registries []string, env []string) []string {
cmd := []string{}
cmd = append(cmd, UnpackerCmdSwarmDeploy)
cmd = appendGitAuthIfNeeded(cmd, stack)
cmd = appendSkipTLSVerifyIfNeeded(cmd, stack)
cmd = appendForceRecreateIfNeeded(cmd, opts.forceRecreate)
if opts.pullImage {
cmd = append(cmd, "-f")
}
@ -203,6 +206,13 @@ func appendAdditionalFiles(cmd []string, files []string) []string {
return cmd
}
func appendForceRecreateIfNeeded(cmd []string, forceRecreate bool) []string {
if forceRecreate {
cmd = append(cmd, "--force-recreate")
}
return cmd
}
func getRegistry(registries []portainer.Registry, dataStore dataservices.DataStore) []string {
cmds := []string{}

View File

@ -70,7 +70,8 @@ func (d *stackDeployer) DeployRemoteComposeStack(
endpoint,
OperationDeploy,
unpackerCmdBuilderOptions{
registries: registries,
forceRecreate: forceRecreate,
registries: registries,
},
)
}
@ -119,10 +120,10 @@ func (d *stackDeployer) DeployRemoteSwarmStack(
defer d.swarmStackManager.Logout(endpoint)
return d.remoteStack(stack, endpoint, OperationSwarmDeploy, unpackerCmdBuilderOptions{
pullImage: pullImage,
prune: prune,
registries: registries,
pullImage: pullImage,
prune: prune,
forceRecreate: stack.AutoUpdate != nil && stack.AutoUpdate.ForceUpdate,
registries: registries,
})
}