Skip to content

#78: Implement Action create with FS to allow embed actions.#80

Merged
davidferlay merged 4 commits intomainfrom
78-embed_actions
Feb 21, 2025
Merged

#78: Implement Action create with FS to allow embed actions.#80
davidferlay merged 4 commits intomainfrom
78-embed_actions

Conversation

@lexbritvin
Copy link
Copy Markdown
Collaborator

No description provided.

Comment thread pkg/driver/docker.go
@davidferlay
Copy link
Copy Markdown
Contributor

davidferlay commented Feb 14, 2025

Tested with real use case of migrating local release action to plugin with container runtime https://github.com/skilld-labs/plasmactl-release

However it fails while buiding binary:

➜  ski-platform-quater git:(master) plasmactl build --no-cache -t 500s --tag nethttpomithttp2 -vvv \
-p github.com/launchrctl/compose@latest \                                                           
-p github.com/launchrctl/keyring@latest \
-p github.com/launchrctl/launchr@78-embed_actions \
-p github.com/launchrctl/web@latest \              
-p github.com/skilld-labs/plasmactl-bump/v2@latest \
-p github.com/skilld-labs/plasmactl-dependencies@latest \
-p github.com/skilld-labs/plasmactl-meta@latest \        
-p github.com/skilld-labs/plasmactl-package@latest \
-p github.com/skilld-labs/plasmactl-publish@latest \
-p github.com/skilld-labs/plasmactl-update@latest \ 
-p github.com/skilld-labs/plasmactl-release@main \ 
-n plasmactl -o plasmactl --build-version v0.0.0  
                         
 INFO  Starting to build plasmactl
 INFO  Creating the project files and fetching dependencies
go: creating new go.mod: module plasmactl
go: github.com/launchrctl/launchr@v0.17.2 requires go >= 1.23.2; switching to go1.23.6
go: upgraded go 1.23.1 => 1.23.2
go: added toolchain go1.23.6
go: added atomicgo.dev/cursor v0.2.0
go: added atomicgo.dev/keyboard v0.2.9
go: added atomicgo.dev/schedule v0.1.0
go: added github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161
go: added github.com/Microsoft/go-winio v0.6.2
go: added github.com/containerd/console v1.0.4
go: added github.com/containerd/log v0.1.0
go: added github.com/davecgh/go-spew v1.1.1
go: added github.com/distribution/reference v0.6.0
go: added github.com/docker/docker v27.4.1+incompatible
go: added github.com/docker/go-connections v0.5.0
go: added github.com/docker/go-units v0.5.0
go: added github.com/felixge/httpsnoop v1.0.4
go: added github.com/go-logr/logr v1.4.2
go: added github.com/go-logr/stdr v1.2.2
go: added github.com/gogo/protobuf v1.3.2
go: added github.com/gookit/color v1.5.4
go: added github.com/inconshreveable/mousetrap v1.1.0
go: added github.com/klauspost/compress v1.17.11
go: added github.com/knadh/koanf v1.5.0
go: added github.com/launchrctl/launchr v0.17.2
go: added github.com/lithammer/fuzzysearch v1.1.8
go: added github.com/mattn/go-runewidth v0.0.16
go: added github.com/mitchellh/copystructure v1.2.0
go: added github.com/mitchellh/mapstructure v1.5.0
go: added github.com/mitchellh/reflectwalk v1.0.2
go: added github.com/moby/docker-image-spec v1.3.1
go: added github.com/moby/patternmatcher v0.6.0
go: added github.com/moby/sys/sequential v0.6.0
go: added github.com/moby/sys/signal v0.7.1
go: added github.com/moby/sys/user v0.3.0
go: added github.com/moby/sys/userns v0.1.0
go: added github.com/moby/term v0.5.0
go: added github.com/morikuni/aec v1.0.0
go: added github.com/opencontainers/go-digest v1.0.0
go: added github.com/opencontainers/image-spec v1.1.0
go: added github.com/pkg/errors v0.9.1
go: added github.com/pmezard/go-difflib v1.0.0
go: added github.com/pterm/pterm v0.12.80
go: added github.com/rivo/uniseg v0.4.7
go: added github.com/santhosh-tekuri/jsonschema/v6 v6.0.1
go: added github.com/sirupsen/logrus v1.9.3
go: added github.com/spf13/cobra v1.8.1
go: added github.com/spf13/pflag v1.0.5
go: added github.com/stretchr/testify v1.10.0
go: added github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e
go: added go.opentelemetry.io/auto/sdk v1.1.0
go: added go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0
go: added go.opentelemetry.io/otel v1.33.0
go: added go.opentelemetry.io/otel/metric v1.33.0
go: added go.opentelemetry.io/otel/trace v1.33.0
go: added go.uber.org/mock v0.5.0
go: added golang.org/x/mod v0.22.0
go: added golang.org/x/sys v0.28.0
go: added golang.org/x/term v0.27.0
go: added golang.org/x/text v0.21.0
go: added gopkg.in/yaml.v3 v3.0.1
go: added dario.cat/mergo v1.0.1
go: added filippo.io/age v1.2.1
go: upgraded github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 => v0.0.0-20250102033503-faa5f7b0171c
go: added github.com/ProtonMail/go-crypto v1.1.5
go: added github.com/cloudflare/circl v1.5.0
go: added github.com/cyphar/filepath-securejoin v0.4.0
go: upgraded github.com/docker/docker v27.4.1+incompatible => v27.5.0+incompatible
go: added github.com/emirpasic/gods v1.18.1
go: added github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376
go: added github.com/go-git/go-billy/v5 v5.6.2
go: added github.com/go-git/go-git/v5 v5.13.1
go: added github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8
go: added github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99
go: added github.com/kevinburke/ssh_config v1.2.0
go: added github.com/launchrctl/keyring v0.3.0
go: added github.com/mmcloughlin/avo v0.6.0
go: upgraded github.com/moby/term v0.5.0 => v0.5.2
go: added github.com/pjbgf/sha1cd v0.3.1
go: added github.com/skeema/knownhosts v1.3.0
go: added github.com/skilld-labs/plasmactl-publish v1.4.0
go: added github.com/xanzy/ssh-agent v0.3.3
go: upgraded golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 => v0.32.0
go: upgraded golang.org/x/net v0.6.0 => v0.34.0
go: upgraded golang.org/x/sys v0.28.0 => v0.29.0
go: upgraded golang.org/x/term v0.27.0 => v0.28.0
go: upgraded golang.org/x/tools v0.22.0 => v0.29.0
go: added gopkg.in/warnings.v0 v0.1.2
go: added github.com/skilld-labs/plasmactl-update v0.4.0
go: downloading github.com/skilld-labs/plasmactl-release v0.0.0-20250214143345-ed0f3c3cec26
go: added github.com/skilld-labs/plasmactl-release v0.0.0-20250214143345-ed0f3c3cec26
go: added github.com/atotto/clipboard v0.1.4
go: added github.com/aymanbagabas/go-osc52/v2 v2.0.1
go: added github.com/catppuccin/go v0.2.0
go: added github.com/charmbracelet/bubbles v0.20.0
go: added github.com/charmbracelet/bubbletea v1.2.4
go: added github.com/charmbracelet/huh v0.6.0
go: added github.com/charmbracelet/lipgloss v1.0.0
go: added github.com/charmbracelet/x/ansi v0.7.0
go: added github.com/charmbracelet/x/exp/strings v0.0.0-20250116134054-e10c5c25afb9
go: added github.com/charmbracelet/x/term v0.2.1
go: upgraded github.com/dustin/go-humanize v1.0.0 => v1.0.1
go: added github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f
go: added github.com/launchrctl/compose v0.14.0
go: added github.com/lucasb-eyer/go-colorful v1.2.0
go: upgraded github.com/mattn/go-isatty v0.0.12 => v0.0.20
go: added github.com/mattn/go-localereader v0.0.1
go: added github.com/mitchellh/hashstructure/v2 v2.0.2
go: added github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6
go: added github.com/muesli/cancelreader v0.2.2
go: added github.com/muesli/termenv v0.15.3-0.20240618155329-98d742f6907a
go: added github.com/stevenle/topsort v0.2.0
go: upgraded github.com/launchrctl/keyring v0.3.0 => v0.3.2
go: upgraded go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 => v0.59.0
go: upgraded go.opentelemetry.io/otel v1.33.0 => v1.34.0
go: upgraded go.opentelemetry.io/otel/metric v1.33.0 => v1.34.0
go: upgraded go.opentelemetry.io/otel/trace v1.33.0 => v1.34.0
go: upgraded github.com/davecgh/go-spew v1.1.1 => v1.1.2-0.20180830191138-d8f796af33cc
go: upgraded github.com/docker/docker v27.5.0+incompatible => v27.5.1+incompatible
go: upgraded github.com/launchrctl/launchr v0.17.2 => v0.17.3-0.20250206231955-88afa1f23ed7
go: upgraded github.com/pmezard/go-difflib v1.0.0 => v1.0.1-0.20181226105442-5d4384ee4fb2
go: upgraded github.com/spf13/pflag v1.0.5 => v1.0.6
go: upgraded golang.org/x/mod v0.22.0 => v0.23.0
go: upgraded golang.org/x/sync v0.10.0 => v0.11.0
go: upgraded golang.org/x/sys v0.29.0 => v0.30.0
go: upgraded golang.org/x/term v0.28.0 => v0.29.0
go: upgraded golang.org/x/text v0.21.0 => v0.22.0
go: added github.com/ajg/form v1.5.1
go: added github.com/apapsch/go-jsonmerge/v2 v2.0.0
go: added github.com/dprotaso/go-yit v0.0.0-20240618133044-5a0af90af097
go: added github.com/getkin/kin-openapi v0.128.0
go: added github.com/go-chi/chi/v5 v5.2.0
go: added github.com/go-chi/cors v1.2.1
go: added github.com/go-chi/render v1.0.3
go: added github.com/go-openapi/jsonpointer v0.21.0
go: added github.com/go-openapi/swag v0.23.0
go: added github.com/gorilla/mux v1.8.1
go: added github.com/gorilla/websocket v1.5.3
go: added github.com/invopop/yaml v0.3.1
go: added github.com/josharian/intern v1.0.0
go: added github.com/launchrctl/web v0.12.3
go: added github.com/mailru/easyjson v0.9.0
go: added github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826
go: added github.com/oapi-codegen/nethttp-middleware v1.0.2
go: added github.com/oapi-codegen/oapi-codegen/v2 v2.4.1
go: added github.com/oapi-codegen/runtime v1.1.1
go: added github.com/perimeterx/marshmallow v1.1.5
go: added github.com/speakeasy-api/openapi-overlay v0.9.0
go: added github.com/vmware-labs/yaml-jsonpath v0.3.2
go: upgraded github.com/cespare/xxhash/v2 v2.1.1 => v2.3.0
go: added github.com/skilld-labs/plasmactl-bump/v2 v2.4.0
go: added github.com/sosedoff/ansible-vault-go v0.2.0
go: added github.com/skilld-labs/plasmactl-dependencies v0.4.0
go: added github.com/skilld-labs/plasmactl-meta v0.16.0
go: added github.com/skilld-labs/plasmactl-package v1.2.0
 INFO  Generating the go files
 INFO  Running plugin generation
../../../go/pkg/mod/github.com/skilld-labs/plasmactl-release@v0.0.0-20250214143345-ed0f3c3cec26/plugin.go:16:12: pattern action: no matching files found
  ERROR   exit status 1

@davidferlay
Copy link
Copy Markdown
Contributor

After moving action related files to action subdir it fail with different error:

➜  ski-platform-quater git:(master) plasmactl build --no-cache -t 500s --tag nethttpomithttp2 -vvv \  
-p github.com/launchrctl/compose@latest \                                                                                                                                                      -p github.com/launchrctl/keyring@latest \
-p github.com/launchrctl/launchr@78-embed_actions \
-p github.com/launchrctl/web@latest \
-p github.com/skilld-labs/plasmactl-bump/v2@latest \
-p github.com/skilld-labs/plasmactl-dependencies@latest \
-p github.com/skilld-labs/plasmactl-meta@latest \
-p github.com/skilld-labs/plasmactl-package@latest \
-p github.com/skilld-labs/plasmactl-publish@latest \
-p github.com/skilld-labs/plasmactl-update@latest \
-p github.com/skilld-labs/plasmactl-release@main \
-n plasmactl -o plasmactl --build-version v0.0.0

 INFO  Starting to build plasmactl            
 INFO  Creating the project files and fetching dependencies
go: creating new go.mod: module plasmactl
go: github.com/launchrctl/launchr@v0.17.2 requires go >= 1.23.2; switching to go1.23.6
go: upgraded go 1.23.1 => 1.23.2
go: added toolchain go1.23.6
go: added atomicgo.dev/cursor v0.2.0
go: added atomicgo.dev/keyboard v0.2.9
go: added atomicgo.dev/schedule v0.1.0
go: added github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161
go: added github.com/Microsoft/go-winio v0.6.2
go: added github.com/containerd/console v1.0.4
go: added github.com/containerd/log v0.1.0
go: added github.com/davecgh/go-spew v1.1.1
go: added github.com/distribution/reference v0.6.0
go: added github.com/docker/docker v27.4.1+incompatible
go: added github.com/docker/go-connections v0.5.0
go: added github.com/docker/go-units v0.5.0
go: added github.com/felixge/httpsnoop v1.0.4
go: added github.com/go-logr/logr v1.4.2
go: added github.com/go-logr/stdr v1.2.2
go: added github.com/gogo/protobuf v1.3.2
go: added github.com/gookit/color v1.5.4
go: added github.com/inconshreveable/mousetrap v1.1.0
go: added github.com/klauspost/compress v1.17.11
go: added github.com/knadh/koanf v1.5.0
go: added github.com/launchrctl/launchr v0.17.2
go: added github.com/lithammer/fuzzysearch v1.1.8
go: added github.com/mattn/go-runewidth v0.0.16
go: added github.com/mitchellh/copystructure v1.2.0
go: added github.com/mitchellh/mapstructure v1.5.0
go: added github.com/mitchellh/reflectwalk v1.0.2
go: added github.com/moby/docker-image-spec v1.3.1
go: added github.com/moby/patternmatcher v0.6.0
go: added github.com/moby/sys/sequential v0.6.0
go: added github.com/moby/sys/signal v0.7.1
go: added github.com/moby/sys/user v0.3.0
go: added github.com/moby/sys/userns v0.1.0
go: added github.com/moby/term v0.5.0
go: added github.com/morikuni/aec v1.0.0
go: added github.com/opencontainers/go-digest v1.0.0
go: added github.com/opencontainers/image-spec v1.1.0
go: added github.com/pkg/errors v0.9.1
go: added github.com/pmezard/go-difflib v1.0.0
go: added github.com/pterm/pterm v0.12.80
go: added github.com/rivo/uniseg v0.4.7
go: added github.com/santhosh-tekuri/jsonschema/v6 v6.0.1
go: added github.com/sirupsen/logrus v1.9.3
go: added github.com/spf13/cobra v1.8.1
go: added github.com/spf13/pflag v1.0.5
go: added github.com/stretchr/testify v1.10.0
go: added github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e
go: added go.opentelemetry.io/auto/sdk v1.1.0
go: added go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0
go: added go.opentelemetry.io/otel v1.33.0
go: added go.opentelemetry.io/otel/metric v1.33.0
go: added go.opentelemetry.io/otel/trace v1.33.0
go: added go.uber.org/mock v0.5.0
go: added golang.org/x/mod v0.22.0
go: added golang.org/x/sys v0.28.0
go: added golang.org/x/term v0.27.0
go: added golang.org/x/text v0.21.0
go: added gopkg.in/yaml.v3 v3.0.1
go: upgraded github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 => v0.0.0-20250102033503-faa5f7b0171c
go: added github.com/ajg/form v1.5.1
go: added github.com/apapsch/go-jsonmerge/v2 v2.0.0
go: upgraded github.com/docker/docker v27.4.1+incompatible => v27.5.0+incompatible
go: added github.com/dprotaso/go-yit v0.0.0-20240618133044-5a0af90af097
go: added github.com/getkin/kin-openapi v0.128.0
go: added github.com/go-chi/chi/v5 v5.2.0
go: added github.com/go-chi/cors v1.2.1
go: added github.com/go-chi/render v1.0.3
go: added github.com/go-openapi/jsonpointer v0.21.0
go: added github.com/go-openapi/swag v0.23.0
go: upgraded github.com/google/uuid v1.1.2 => v1.6.0
go: added github.com/gorilla/mux v1.8.1
go: added github.com/gorilla/websocket v1.5.3
go: added github.com/invopop/yaml v0.3.1
go: added github.com/josharian/intern v1.0.0
go: added github.com/launchrctl/web v0.12.3
go: added github.com/mailru/easyjson v0.9.0
go: upgraded github.com/moby/term v0.5.0 => v0.5.2
go: added github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826
go: added github.com/oapi-codegen/nethttp-middleware v1.0.2
go: added github.com/oapi-codegen/oapi-codegen/v2 v2.4.1
go: added github.com/oapi-codegen/runtime v1.1.1
go: added github.com/perimeterx/marshmallow v1.1.5
go: added github.com/speakeasy-api/openapi-overlay v0.9.0
go: added github.com/vmware-labs/yaml-jsonpath v0.3.2
go: upgraded go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 => v0.59.0
go: upgraded go.opentelemetry.io/otel v1.33.0 => v1.34.0
go: upgraded go.opentelemetry.io/otel/metric v1.33.0 => v1.34.0
go: upgraded go.opentelemetry.io/otel/trace v1.33.0 => v1.34.0
go: upgraded golang.org/x/sys v0.28.0 => v0.29.0
go: upgraded golang.org/x/term v0.27.0 => v0.28.0
go: upgraded golang.org/x/tools v0.22.0 => v0.29.0
go: added dario.cat/mergo v1.0.1
go: added filippo.io/age v1.2.1
go: added github.com/ProtonMail/go-crypto v1.1.5
go: added github.com/atotto/clipboard v0.1.4
go: added github.com/aymanbagabas/go-osc52/v2 v2.0.1
go: added github.com/catppuccin/go v0.2.0
go: upgraded github.com/cespare/xxhash/v2 v2.1.1 => v2.3.0
go: added github.com/charmbracelet/bubbles v0.20.0
go: added github.com/charmbracelet/bubbletea v1.2.4
go: added github.com/charmbracelet/huh v0.6.0
go: added github.com/charmbracelet/lipgloss v1.0.0
go: added github.com/charmbracelet/x/ansi v0.7.0
go: added github.com/charmbracelet/x/exp/strings v0.0.0-20250116134054-e10c5c25afb9
go: added github.com/charmbracelet/x/term v0.2.1
go: added github.com/cloudflare/circl v1.5.0
go: added github.com/cyphar/filepath-securejoin v0.4.0
go: upgraded github.com/dustin/go-humanize v1.0.0 => v1.0.1
go: added github.com/emirpasic/gods v1.18.1
go: added github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f
go: added github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376
go: added github.com/go-git/go-billy/v5 v5.6.2
go: added github.com/go-git/go-git/v5 v5.13.1
go: added github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8
go: added github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99
go: added github.com/kevinburke/ssh_config v1.2.0
go: added github.com/launchrctl/compose v0.14.0
go: added github.com/launchrctl/keyring v0.3.0
go: added github.com/lucasb-eyer/go-colorful v1.2.0
go: added github.com/mattn/go-localereader v0.0.1
go: added github.com/mitchellh/hashstructure/v2 v2.0.2
go: added github.com/mmcloughlin/avo v0.6.0
go: added github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6
go: added github.com/muesli/cancelreader v0.2.2
go: added github.com/muesli/termenv v0.15.3-0.20240618155329-98d742f6907a
go: added github.com/pjbgf/sha1cd v0.3.1
go: added github.com/skeema/knownhosts v1.3.0
go: added github.com/skilld-labs/plasmactl-bump/v2 v2.4.0
go: added github.com/sosedoff/ansible-vault-go v0.2.0
go: added github.com/stevenle/topsort v0.2.0
go: added github.com/xanzy/ssh-agent v0.3.3
go: upgraded golang.org/x/crypto v0.17.0 => v0.32.0
go: added gopkg.in/warnings.v0 v0.1.2
go: added github.com/skilld-labs/plasmactl-dependencies v0.4.0
go: added github.com/skilld-labs/plasmactl-meta v0.16.0
go: added github.com/skilld-labs/plasmactl-update v0.4.0
go: downloading github.com/skilld-labs/plasmactl-release v0.0.0-20250214144810-1fb0331784c8
go: added github.com/skilld-labs/plasmactl-release v0.0.0-20250214144810-1fb0331784c8
go: upgraded github.com/launchrctl/keyring v0.3.0 => v0.3.2
go: upgraded github.com/davecgh/go-spew v1.1.1 => v1.1.2-0.20180830191138-d8f796af33cc
go: upgraded github.com/docker/docker v27.5.0+incompatible => v27.5.1+incompatible
go: upgraded github.com/launchrctl/launchr v0.17.2 => v0.17.3-0.20250206231955-88afa1f23ed7
go: upgraded github.com/pmezard/go-difflib v1.0.0 => v1.0.1-0.20181226105442-5d4384ee4fb2
go: upgraded github.com/spf13/pflag v1.0.5 => v1.0.6
go: upgraded golang.org/x/mod v0.22.0 => v0.23.0
go: upgraded golang.org/x/sync v0.10.0 => v0.11.0
go: upgraded golang.org/x/sys v0.29.0 => v0.30.0
go: upgraded golang.org/x/term v0.28.0 => v0.29.0
go: upgraded golang.org/x/text v0.21.0 => v0.22.0
go: added github.com/skilld-labs/plasmactl-package v1.2.0
go: added github.com/skilld-labs/plasmactl-publish v1.4.0
 INFO  Generating the go files
 INFO  Running plugin generation
# github.com/skilld-labs/plasmactl-release
../../../go/pkg/mod/github.com/skilld-labs/plasmactl-release@v0.0.0-20250214144810-1fb0331784c8/plugin.go:23:31: undefined: launchr
../../../go/pkg/mod/github.com/skilld-labs/plasmactl-release@v0.0.0-20250214144810-1fb0331784c8/plugin.go:24:9: undefined: launchr
../../../go/pkg/mod/github.com/skilld-labs/plasmactl-release@v0.0.0-20250214144810-1fb0331784c8/plugin.go:28:57: undefined: action
../../../go/pkg/mod/github.com/skilld-labs/plasmactl-release@v0.0.0-20250214144810-1fb0331784c8/plugin.go:34:12: undefined: action
../../../go/pkg/mod/github.com/skilld-labs/plasmactl-release@v0.0.0-20250214144810-1fb0331784c8/plugin.go:38:12: undefined: action
  ERROR   exit status 1

@davidferlay
Copy link
Copy Markdown
Contributor

davidferlay commented Feb 18, 2025

Tested OK on some repo:

➜  ski-platform git:(master) ./plasmactl platform:release                                             

Image "platform-actions-release:latest" doesn't exist locally, building...
Step 1/5 : FROM alpine:3.20
 ---> a606584aa9aa
Step 2/5 : ARG GIT_AUTHOR_NAME
 ---> Using cache
 ---> 2e7ac82dc126
Step 3/5 : ARG GIT_AUTHOR_EMAIL
 ---> Using cache
 ---> 02dc7891807b
Step 4/5 : ENV GIT_CONFIG_GLOBAL="/.gitconfig"
 ---> Using cache
 ---> 0255409408a4
Step 5/5 : RUN apk upgrade --update-cache -a && apk add     bash     git     git-cliff &&     rm -fr /var/cache/apk/* &&     git config --global user.name "${GIT_AUTHOR_NAME}" &&     git config --global user.email "${GIT_AUTHOR_EMAIL}"
 ---> Using cache
 ---> b12646855e4c
Successfully built b12646855e4c
Successfully tagged platform-actions-release:latest

Last tag is: 1.24.0

## What's Changed:
- 92e028bda3b07 Upgrading pla-plasma package
- 842a25ed9af54 Upgrade Gitlab to 16.7.10 #1442
- 766f8466aec5b Upgrade Gitlab to 16.3.9 #1437
- dab2d4e909aea Upgrade Gitlab to 15.11.13

- update patches
- increase /dev/shm to 128Mi
- fb7b971beca99 #1422: Explore app upgrade (superset 4.1.1)
- fae7fc80954d9 #1422: Explore app upgrade (superset 4.0.1)
- d6f5fc9b29d30 Reverting gitignore
- d83af274116ab Updating gitignore configuration

1) Fix: Safe to upgrade, bugfixes (1.24.1)
2) Feature: Safe to update, new features (1.25.0)
3) Breaking: Not safe to update (2.0.0)

Please enter your choice: 2
Incrementing minor version and reset patch level
Creating tag: 1.25.0
Press 'Enter' to push new tag to repo

But KO on another one:

➜  pla-intelligence git:(28-fix-data_relay_events-actions-config-advisor) ./plasmactl platform:release -vvv
fatal error: all goroutines are asleep - deadlock!

goroutine 1 [chan receive]:
github.com/launchrctl/launchr/pkg/action.(*Discovery).Discover(0xc000279810, {0x14e6880, 0xc0004aad90})
	github.com/launchrctl/launchr@v0.17.3-0.20250217232230-0127dfc4de5a/pkg/action/discover.go:176 +0x15f
github.com/launchrctl/launchr/plugins/yamldiscovery.(*Plugin).DiscoverActions(0xc000684200, {0x14e6880, 0xc0004aad90})
	github.com/launchrctl/launchr@v0.17.3-0.20250217232230-0127dfc4de5a/plugins/yamldiscovery/plugin.go:45 +0x28e
github.com/launchrctl/launchr/plugins/actionscobra.(*Plugin).discoverActions(0xc000686270)
	github.com/launchrctl/launchr@v0.17.3-0.20250217232230-0127dfc4de5a/plugins/actionscobra/plugin.go:64 +0x233
github.com/launchrctl/launchr/plugins/actionscobra.(*Plugin).OnAppInit(0xc000686270, {0x14ec238, 0xc000480140})
	github.com/launchrctl/launchr@v0.17.3-0.20250217232230-0127dfc4de5a/plugins/actionscobra/plugin.go:48 +0xf8
github.com/launchrctl/launchr.(*appImpl).init(0xc000480140)
	github.com/launchrctl/launchr@v0.17.3-0.20250217232230-0127dfc4de5a/app.go:126 +0x7e9
github.com/launchrctl/launchr.(*appImpl).Execute(0xc000480140)
	github.com/launchrctl/launchr@v0.17.3-0.20250217232230-0127dfc4de5a/app.go:158 +0x45
github.com/launchrctl/launchr.Run(...)
	github.com/launchrctl/launchr@v0.17.3-0.20250217232230-0127dfc4de5a/app.go:185
github.com/launchrctl/launchr.RunAndExit()
	github.com/launchrctl/launchr@v0.17.3-0.20250217232230-0127dfc4de5a/app.go:190 +0x1f
main.main()
	plasmactl/main.go:9 +0xf

goroutine 6 [chan send]:
github.com/launchrctl/launchr/pkg/action.(*Discovery).findFiles.func1()
	github.com/launchrctl/launchr@v0.17.3-0.20250217232230-0127dfc4de5a/pkg/action/discover.go:153 +0xf7
created by github.com/launchrctl/launchr/pkg/action.(*Discovery).findFiles in goroutine 1
	github.com/launchrctl/launchr@v0.17.3-0.20250217232230-0127dfc4de5a/pkg/action/discover.go:115 +0xc6

You can reproduce by building binary with:

plasmactl build --no-cache -t 500s --tag nethttpomithttp2 -vvv \        
-p github.com/launchrctl/compose@latest \                                                                                                                                                      
-p github.com/launchrctl/keyring@latest \
-p github.com/launchrctl/launchr@78-embed_actions \
-p github.com/launchrctl/web@latest \
-p github.com/skilld-labs/plasmactl-bump/v2@latest \
-p github.com/skilld-labs/plasmactl-dependencies@latest \
-p github.com/skilld-labs/plasmactl-meta@latest \
-p github.com/skilld-labs/plasmactl-package@latest \
-p github.com/skilld-labs/plasmactl-publish@latest \
-p github.com/skilld-labs/plasmactl-update@latest \
-p github.com/skilld-labs/plasmactl-release@main \
-n plasmactl -o plasmactl --build-version v0.0.0

then testing it on pla-intelligence repo

@davidferlay
Copy link
Copy Markdown
Contributor

davidferlay commented Feb 18, 2025

Note to self:

  • test different working_directory values
  • test rebuild of image in case action changed
  • test which action is executed in case action with same name exists both as plugin and local action

@davidferlay
Copy link
Copy Markdown
Contributor

Regarding such warnings:

 WARNING  Action "platform.entities.timelog:diff" was skipped:
          action with id "platform.entities.timelog:diff" has another declaration. Check the files:
            /home/dferlay/Sources/ski-platform/platform/entities/roles/timelog/actions/diff/action.yaml
            /home/dferlay/Sources/ski-platform/.compose/build/platform/entities/roles/timelog/actions/diff/action.yaml

This action is part of current repo so not surprising to see it in both dirs after composition, somewhow that shouldn't be an issue

@lexbritvin
Copy link
Copy Markdown
Collaborator Author

KO on another one:

The issue occurs when searching for actions on non-existent paths in the compose directory. Added extra validation. Strange that we discovered it only now.

Regarding such warnings:

I added extra validation for cases when we try to add existing actions. But I suppose it’s expected behavior that .compose overrides them.
Personally, I prefer having an explicit warning when there’s an issue in the declaration, as it’s unclear which action should take priority.
I moved the warning to the debug level, stating that the overridden paths exist, in case a priority issue arises.

@davidferlay
Copy link
Copy Markdown
Contributor

  • non-existent paths ? What do you mean by that ?

  • I suppose it’s expected behavior that .compose overrides them.
    Indeed it is

  • it’s unclear which action should take priority
    It's true that it's something we didn't consider yet afaic. Not sure what's the universal answer to that 🤔

@davidferlay
Copy link
Copy Markdown
Contributor

  • The issue occurs when searching for actions on non-existent paths in the compose directory. Added extra validation. Strange that we discovered it only now.

Tested ok! 👌 Working fine in same case where it used to panic

Gonna spend some time to do some additional testing

@lexbritvin
Copy link
Copy Markdown
Collaborator Author

non-existent paths ? What do you mean by that ?

Compose plugin expects .compose to exist and asks to search it, but the path may not exist. So I added an extra condition to not discover paths that don't exist. Nothing special, I'm surprised the issue never appeared before because it's obvious.

@davidferlay
Copy link
Copy Markdown
Contributor

davidferlay commented Feb 21, 2025

Further testing:

  • Different working_directory values: ✔️
  • Rebuild of image in case action changed: ✔️
  • Plugin action overrides local action if doublon ✔️
  • Raising error in container: ✔️
  • Works in CI: ✔️
  • No regression on other commands: ✔️

@lexbritvin
Copy link
Copy Markdown
Collaborator Author

lexbritvin commented Feb 21, 2025

It's not expected behavior.

actions_base_dir: Not ok 🔴 , should be .compose/build/

It shows the root directory where the action was found. The action is embedded, then it's empty

action_dir: Not ok 🔴 , should be /action

It shows the dir of action yaml file. Same here, it's embedded.

@davidferlay
Copy link
Copy Markdown
Contributor

All clear 👌

@davidferlay davidferlay merged commit eaa2258 into main Feb 21, 2025
@lexbritvin lexbritvin deleted the 78-embed_actions branch May 18, 2025 23:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants