This action creates an Octopus Deploy package, uploads it, and creates a release in a single step.
- name: Deploy to Octopus
uses: maestra-io/github-actions/octopus-package-release@main
with:
octopusProject: my-project
version: ${{ steps.release-number.outputs.release-number }}
folderToPack: helmfile/**
space: Default
releaseNotes: ${{ steps.create-release.outputs.release-notes-body }}
OCTOPUS_CLI_API_KEY: ${{ env.OCTOPUS_API_KEY }}
OCTOPUS_CLI_SERVER: ${{ env.OCTOPUS_CLI_SERVER }}octopusProject: Octopus project name (required)version: Package and release version (required)folderToPack: Folder to include in package, e.g.,helmfile/**,terraform/**(required)space: Octopus space name (optional, defaults to "Default")releaseNotes: Release notes for the Octopus release (optional)OCTOPUS_CLI_API_KEY: Octopus API key (required)OCTOPUS_CLI_SERVER: Octopus server URL (required)
package-path: Path to the created package file
- name: Deploy with release notes
uses: maestra-io/github-actions/octopus-package-release@main
with:
octopusProject: shopify-webhooks
version: 1.2.3
folderToPack: helmfile/**
space: Production
releaseNotes: "Bug fixes and performance improvements"
OCTOPUS_CLI_API_KEY: ${{ secrets.OCTOPUS_API_KEY }}
OCTOPUS_CLI_SERVER: https://octopus.mindbox.ruThis action pushes multiple Docker images to AWS ECR repositories.
- name: Push to ECR
uses: ./push-to-aws-ecr-repository
with:
awsAccessKey: ${{ secrets.AWS_ACCESS_KEY_ID }}
awsSecretKey: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
awsRegion: us-east-1
awsOrganizationId: o-example123456
repositories: 'repo1,repo2,repo3'
localTag: 'latest'
targetTag: 'v1.0.0'awsAccessKey: AWS Access Key ID (required)awsSecretKey: AWS Secret Access Key (required)awsRegion: AWS Region (required)awsOrganizationId: AWS Organization ID for ECR policy (required)repositories: Comma-separated list of repository names (required)localTag: Tag of locally built images that must be pre-built (required)targetTag: Target tag for all ECR repositories (required)
Before running this action, ensure that:
- Docker images are built locally with the specified
localTag - Images should be tagged as
local/{repository-name}:{localTag} - AWS credentials have appropriate ECR permissions
If you have three services: api, frontend, and worker, you would:
-
Build your images locally:
docker build -t local/api:latest ./api docker build -t local/frontend:latest ./frontend docker build -t local/worker:latest ./worker
-
Use the action:
- uses: ./push-to-aws-ecr-repository with: awsAccessKey: ${{ secrets.AWS_ACCESS_KEY_ID }} awsSecretKey: ${{ secrets.AWS_SECRET_ACCESS_KEY }} awsRegion: us-east-1 awsOrganizationId: o-example123456 repositories: 'api,frontend,worker' localTag: 'latest' targetTag: 'v1.0.0'
This will push all three images to their respective ECR repositories with the v1.0.0 tag.