diff --git a/go/main.go b/go/main.go index 5335627..991c04a 100644 --- a/go/main.go +++ b/go/main.go @@ -17,7 +17,7 @@ func main() { // Init tasks taskItems := []common.Tasker{ - tasks.NewListRepositoriesTask(config), + tasks.NewListRepositoryMenuTask(config), tasks.NewGenerateJwtTokenTask(config), tasks.NewCurlLookupTask(), tasks.NewCodeSecurityScanTask(), diff --git a/go/repositories/agent/build_docker_image.go b/go/repositories/agent/build_docker_image.go new file mode 100644 index 0000000..4db3e16 --- /dev/null +++ b/go/repositories/agent/build_docker_image.go @@ -0,0 +1,30 @@ +package agent + +import ( + "ocl/portainer-devtool/configs" + "ocl/portainer-devtool/tasks/common" + "ocl/portainer-devtool/utils" +) + +type BuildDockerImageSubTask struct { + common.GeneralTask +} + +func NewBuildDockerImageSubTask(cfg *configs.Config) *BuildDockerImageSubTask { + return &BuildDockerImageSubTask{ + GeneralTask: *common.NewGeneralTask(cfg), + } +} + +func (task *BuildDockerImageSubTask) Execute() error { + utils.SuccessPrint(` +./dev.sh compile +./dev.sh build + `) + + return nil +} + +func (task *BuildDockerImageSubTask) String() string { + return "Build Docker Image" +} diff --git a/go/repositories/agent/menu.go b/go/repositories/agent/menu.go new file mode 100644 index 0000000..98dd7ab --- /dev/null +++ b/go/repositories/agent/menu.go @@ -0,0 +1,31 @@ +package agent + +import ( + "ocl/portainer-devtool/configs" + "ocl/portainer-devtool/tasks/common" +) + +type MenuSubTask struct { + common.GeneralTask +} + +func NewMenuSubTask(cfg *configs.Config) *MenuSubTask { + return &MenuSubTask{ + GeneralTask: *common.NewGeneralTask(cfg), + } +} + +func (task *MenuSubTask) Execute() error { + subTaskItems := []common.Tasker{ + NewBuildDockerImageSubTask(task.Config), + NewPushImageSubTask(task.Config), + } + + common.ListCommandMenu(subTaskItems, "Which management commands do you want to choose:", false, task.ParentTasks) + + return nil +} + +func (task *MenuSubTask) String() string { + return "agent" +} diff --git a/go/repositories/agent/push_image.go b/go/repositories/agent/push_image.go new file mode 100644 index 0000000..cd74547 --- /dev/null +++ b/go/repositories/agent/push_image.go @@ -0,0 +1,32 @@ +package agent + +import ( + "ocl/portainer-devtool/configs" + "ocl/portainer-devtool/tasks/common" + "ocl/portainer-devtool/utils" +) + +type PushImageSubTask struct { + common.GeneralTask +} + +func NewPushImageSubTask(cfg *configs.Config) *PushImageSubTask { + return &PushImageSubTask{ + GeneralTask: *common.NewGeneralTask(cfg), + } +} + +func (task *PushImageSubTask) Execute() error { + utils.SuccessPrint(` +export CR_PAT=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 +echo $CR_PAT | docker login ghcr.io -u oscarzhou-portainer --password-stdin +docker image tag portainerci/agent:develop-78af729 ghcr.io/oscarzhou-portainer/agent:develop-78af729 +docker push ghcr.io/oscarzhou-portainer/agent:develop-78af729docker + `) + + return nil +} + +func (task *PushImageSubTask) String() string { + return "Push Docker Image" +} diff --git a/go/repositories/portainer-ee/build_docker_image.go b/go/repositories/portainer-ee/build_docker_image.go new file mode 100644 index 0000000..5cc02db --- /dev/null +++ b/go/repositories/portainer-ee/build_docker_image.go @@ -0,0 +1,31 @@ +package portaineree + +import ( + "ocl/portainer-devtool/configs" + "ocl/portainer-devtool/tasks/common" + "ocl/portainer-devtool/utils" +) + +type BuildDockerImageSubTask struct { + common.GeneralTask +} + +func NewBuildDockerImageSubTask(cfg *configs.Config) *BuildDockerImageSubTask { + return &BuildDockerImageSubTask{ + GeneralTask: *common.NewGeneralTask(cfg), + } +} + +func (task *BuildDockerImageSubTask) Execute() error { + utils.SuccessPrint(` +yarn build +docker build -t "portainerci/portainer:ee4803" -f build/linux/Dockerfile . +docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v "/var/run/docker.sock:/var/run/docker.sock" -v ${env:HOME}/volume/portainer-ee-data-2:/data --add-host=host.docker.internal:host-gateway portainerci/portainer:ee4803 + `) + + return nil +} + +func (task *BuildDockerImageSubTask) String() string { + return "Build Docker Image" +} diff --git a/go/repositories/portainer-ee/menu.go b/go/repositories/portainer-ee/menu.go new file mode 100644 index 0000000..054695f --- /dev/null +++ b/go/repositories/portainer-ee/menu.go @@ -0,0 +1,30 @@ +package portaineree + +import ( + "ocl/portainer-devtool/configs" + "ocl/portainer-devtool/tasks/common" +) + +type MenuSubTask struct { + common.GeneralTask +} + +func NewMenuSubTask(cfg *configs.Config) *MenuSubTask { + return &MenuSubTask{ + GeneralTask: *common.NewGeneralTask(cfg), + } +} + +func (task *MenuSubTask) Execute() error { + subTaskItems := []common.Tasker{ + NewBuildDockerImageSubTask(task.Config), + } + + common.ListCommandMenu(subTaskItems, "Which management commands do you want to choose:", false, task.ParentTasks) + + return nil +} + +func (task *MenuSubTask) String() string { + return "portainer-ee" +} diff --git a/go/repositories/unpacker/menu.go b/go/repositories/unpacker/menu.go new file mode 100644 index 0000000..4ab82bd --- /dev/null +++ b/go/repositories/unpacker/menu.go @@ -0,0 +1,30 @@ +package unpacker + +import ( + "ocl/portainer-devtool/configs" + "ocl/portainer-devtool/tasks/common" +) + +type MenuSubTask struct { + common.GeneralTask +} + +func NewMenuSubTask(cfg *configs.Config) *MenuSubTask { + return &MenuSubTask{ + GeneralTask: *common.NewGeneralTask(cfg), + } +} + +func (task *MenuSubTask) Execute() error { + subTaskItems := []common.Tasker{ + NewBuildDockerImageSubTask(task.Config), + } + + common.ListCommandMenu(subTaskItems, "Which management commands do you want to choose:", false, task.ParentTasks) + + return nil +} + +func (task *MenuSubTask) String() string { + return "unpacker" +}