-
Notifications
You must be signed in to change notification settings - Fork 5.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add Octopus Deploy release and deploy workflow (#2651)
* Create Octopus Deploy workflow template * add properties file * Pin step versions * update some text * add octopus icon * added linebreak Co-authored-by: Alexis Abril <[email protected]> * added linebreak Co-authored-by: Alexis Abril <[email protected]> * update octopusdeploy icon name --------- Co-authored-by: Alexis Abril <[email protected]>
- Loading branch information
1 parent
dfc0cdc
commit f90b59f
Showing
3 changed files
with
130 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,112 @@ | ||
# This workflow uses actions that are not certified by GitHub. | ||
# They are provided by a third-party and are governed by separate terms of service, | ||
# privacy policy, and support documentation. | ||
# | ||
# This workflow will build and publish a Docker container which is then deployed through Octopus Deploy. | ||
# | ||
# The build job in this workflow currently assumes that there is a Dockerfile that generates the relevant application image. | ||
# If required, this job can be modified to generate whatever alternative build artifact is required for your deployment. | ||
# | ||
# This workflow assumes you have already created a Project in Octopus Deploy. | ||
# For instructions see https://octopus.com/docs/projects/setting-up-projects | ||
# | ||
# To configure this workflow: | ||
# | ||
# 1. Decide where you are going to host your image. | ||
# This template uses the GitHub Registry for simplicity but if required you can update the relevant DOCKER_REGISTRY variables below. | ||
# | ||
# 2. Create and configure an OIDC credential for a service account in Octopus. | ||
# This allows for passwordless authentication to your Octopus instance through a trust relationship configured between Octopus, GitHub and your GitHub Repository. | ||
# https://octopus.com/docs/octopus-rest-api/openid-connect/github-actions | ||
# | ||
# 3. Configure your Octopus project details below: | ||
# OCTOPUS_URL: update to your Octopus Instance Url | ||
# OCTOPUS_SERVICE_ACCOUNT: update to your service account Id | ||
# OCTOPUS_SPACE: update to the name of the space your project is configured in | ||
# OCTOPUS_PROJECT: update to the name of your Octopus project | ||
# OCTOPUS_ENVIRONMENT: update to the name of the environment to recieve the first deployment | ||
|
||
|
||
name: 'Build and Deploy to Octopus Deploy' | ||
|
||
on: | ||
push: | ||
branches: | ||
- '$default-branch' | ||
|
||
jobs: | ||
build: | ||
name: Build | ||
runs-on: ubuntu-latest | ||
permissions: | ||
packages: write | ||
contents: read | ||
env: | ||
DOCKER_REGISTRY: ghcr.io # TODO: Update to your docker registry uri | ||
DOCKER_REGISTRY_USERNAME: ${{ github.actor }} # TODO: Update to your docker registry username | ||
DOCKER_REGISTRY_PASSWORD: ${{ secrets.GITHUB_TOKEN }} # TODO: Update to your docker registry password | ||
outputs: | ||
image_tag: ${{ steps.meta.outputs.version }} | ||
steps: | ||
- uses: actions/checkout@v4 | ||
|
||
- name: Set up Docker Buildx | ||
uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # v3.0.0 | ||
|
||
- name: Log in to the Container registry | ||
uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1 | ||
with: | ||
registry: ${{ env.DOCKER_REGISTRY }} | ||
username: ${{ env.DOCKER_REGISTRY_USERNAME }} | ||
password: ${{ env.DOCKER_REGISTRY_PASSWORD }} | ||
|
||
- name: Extract metadata (tags, labels) for Docker | ||
id: meta | ||
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 | ||
with: | ||
images: ${{ env.DOCKER_REGISTRY }}/${{ github.repository }} | ||
tags: type=semver,pattern={{version}},value=v1.0.0-{{sha}} | ||
|
||
- name: Build and push Docker image | ||
id: push | ||
uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4 | ||
with: | ||
context: . | ||
push: true | ||
tags: ${{ steps.meta.outputs.tags }} | ||
labels: ${{ steps.meta.outputs.labels }} | ||
deploy: | ||
name: Deploy | ||
permissions: | ||
id-token: write | ||
runs-on: ubuntu-latest | ||
needs: [ build ] | ||
env: | ||
OCTOPUS_URL: 'https://your-octopus-url' # TODO: update to your Octopus Instance url | ||
OCTOPUS_SERVICE_ACCOUNT: 'your-service-account-id' # TODO: update to your service account Id | ||
OCTOPUS_SPACE: 'your-space' # TODO: update to the name of the space your project is configured in | ||
OCTOPUS_PROJECT: 'your-project' # TODO: update to the name of your Octopus project | ||
OCTOPUS_ENVIRONMENT: 'your-environment' # TODO: update to the name of the environment to recieve the first deployment | ||
|
||
steps: | ||
- name: Login to Octopus Deploy | ||
uses: OctopusDeploy/login@34b6dcc1e86fa373c14e6a28c5507d221e4de629 #v1.0.2 | ||
with: | ||
server: '${{ env.OCTOPUS_URL }}' | ||
service_account_id: '${{ env.OCTOPUS_SERVICE_ACCOUNT }}' | ||
|
||
- name: Create Release | ||
id: create_release | ||
uses: OctopusDeploy/create-release-action@fea7e7b45c38c021b6bc5a14bd7eaa2ed5269214 #v3.2.2 | ||
with: | ||
project: '${{ env.OCTOPUS_PROJECT }}' | ||
space: '${{ env.OCTOPUS_SPACE }}' | ||
packages: '*:${{ needs.build.outputs.image_tag }}' | ||
|
||
- name: Deploy Release | ||
uses: OctopusDeploy/deploy-release-action@b10a606c903b0a5bce24102af9d066638ab429ac #v3.2.1 | ||
with: | ||
project: '${{ env.OCTOPUS_PROJECT }}' | ||
space: '${{ env.OCTOPUS_SPACE }}' | ||
release_number: '${{ steps.create_release.outputs.release_number }}' | ||
environments: ${{ env.OCTOPUS_ENVIRONMENT }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
{ | ||
"name": "Build and Deploy with Octopus Deploy", | ||
"description": "Build a docker container, create a release in Octopus Deploy and deploy it to your environment.", | ||
"creator": "Octopus Deploy", | ||
"iconName": "octopusdeploy", | ||
"categories": ["Deployment", "Containers", "Dockerfile"] | ||
} |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
f90b59f
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
icons/octopusdeploy.svg
Merge #2651 Branch: main 965022-oss-patch3 SHA: f4dbb8424c