From 4a8d6556c7363b7b4b74de0b3e10101a6333a53e Mon Sep 17 00:00:00 2001 From: Earl Warren Date: Tue, 22 Jul 2025 06:08:31 +0000 Subject: [PATCH] chore(cleanup): delete a network scheduled for deletion even if there is no service (#189) In the current implementation, the network will only be created and be scheduled to be deleted when there is a service: ```go func (rc *RunContext) networkName() (string, bool) { if len(rc.Run.Job().Services) > 0 || rc.Config.ContainerNetworkMode == "" { return fmt.Sprintf("%s-%s-network", rc.jobContainerName(), rc.Run.JobID), true } return string(rc.Config.ContainerNetworkMode), false } ``` Therefore it does not currently make a difference. However, in case the network creation logic changes and a network is created even if a service is not present, it would be incorrect not to delete it. Reviewed-on: https://code.forgejo.org/forgejo/act/pulls/189 Reviewed-by: Michael Kriese Co-authored-by: Earl Warren Co-committed-by: Earl Warren --- act/runner/run_context.go | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/act/runner/run_context.go b/act/runner/run_context.go index 9c5ba70c..323346c0 100644 --- a/act/runner/run_context.go +++ b/act/runner/run_context.go @@ -518,15 +518,15 @@ func (rc *RunContext) prepareJobContainer(ctx context.Context) error { if err := rc.stopServiceContainers()(ctx); err != nil { logger.Errorf("Error while cleaning services: %v", err) } - if createAndDeleteNetwork { - // clean network if it has been created by act - // if using service containers - // it means that the network to which containers are connecting is created by `act_runner`, - // so, we should remove the network at last. - logger.Infof("Cleaning up network for job %s, and network name is: %s", rc.JobName, networkName) - if err := container.NewDockerNetworkRemoveExecutor(networkName)(ctx); err != nil { - logger.Errorf("Error while cleaning network: %v", err) - } + } + if createAndDeleteNetwork { + // clean network if it has been created by act + // if using service containers + // it means that the network to which containers are connecting is created by `act_runner`, + // so, we should remove the network at last. + logger.Infof("Cleaning up network for job %s, and network name is: %s", rc.JobName, networkName) + if err := container.NewDockerNetworkRemoveExecutor(networkName)(ctx); err != nil { + logger.Errorf("Error while cleaning network: %v", err) } } return nil