S3 -> Lambda packages

(cqueenan) #1

Hi -
Here is what I am trying to accomplish. I have a project created that does the following.

  1. Takes a nuget package, extracts it on the octopus server and uploads it to S3
  2. Run the CLI command and Create a lambda function using the contents in step 1
  3. Update the alias version.

I have all of this working how I expect.

The part I am struggling with is I want to make this a generic octopus project where other projects can deploy the release of it.

What I can’t figure out how to do is to Pass in a Nuget Package and version into that project.

Meaning I want to have a project that calls the first projects release but the calling project controls the package information.

This way if I have 10 separate projects, then can call the same “shell” over and over again.

Is this possible?

(Shawn Sesna) #3

Hello there! Would this work better as a custom step template? You could include a package reference and when a release is created, you can choose which version of the package the use.

(cqueenan) #4

In a step template…you call multiple step templates.

The process is to execute the upload to s3 step template. Then run AWS cli commands.

Can you do that?

(Shawn Sesna) #5

Unfortunately, we do not have the ability to have multiple steps within a single step template. What you could do is base your step template off of Run An AWS CLI Script. Using the AWS CLI, you could then upload the referenced package to S3 and perform the remaining steps.

The issue that you’re running into is that the package version is specified when the release is created, so the Chain Deployment and Deploy a Release steps may not work. Our Octopus CLI contains a command to create a release (https://octopus.com/docs/octopus-rest-api/octopus-cli/create-release) which you can specify the package version that way.

The last idea I have is to create the release in the other project by using the API. Like the CLI command, you can specify the package version in the payload.