Deploy #26
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
name: Deploy | |
on: | |
workflow_dispatch: | |
inputs: | |
version: | |
description: Version | |
required: true | |
environment: | |
description: Environment | |
required: true | |
type: choice | |
options: | |
- dev | |
- test | |
- stage | |
- training | |
- preprod | |
- prod | |
permissions: | |
contents: read | |
jobs: | |
deploy: | |
runs-on: ubuntu-latest | |
environment: ${{ inputs.environment }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Authenticate | |
run: | | |
echo "$KUBE_CERT" > ca.crt | |
kubectl config set-cluster "$KUBE_CLUSTER" --certificate-authority=./ca.crt --server="$KUBE_ENV_API" | |
kubectl config set-credentials cd-serviceaccount --token="$KUBE_TOKEN" | |
kubectl config set-context "$KUBE_CLUSTER" --cluster="$KUBE_CLUSTER" --user=cd-serviceaccount --namespace="$KUBE_NAMESPACE" | |
kubectl config use-context "$KUBE_CLUSTER" | |
env: | |
KUBE_ENV_API: ${{ secrets.KUBE_ENV_API }} | |
KUBE_CERT: ${{ secrets.KUBE_CERT }} | |
KUBE_CLUSTER: ${{ secrets.KUBE_CLUSTER }} | |
KUBE_NAMESPACE: ${{ secrets.KUBE_NAMESPACE }} | |
KUBE_TOKEN: ${{ secrets.KUBE_TOKEN }} | |
- name: Install dependencies | |
run: | | |
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" | |
brew install helm | |
helm dependency update helm_deploy | |
- name: Deploy | |
run: | | |
yq -i ".appVersion = \"$VERSION\"" "helm_deploy/Chart.yaml" | |
exec helm upgrade "$CHART_NAME" helm_deploy \ | |
--atomic \ | |
--history-max 10 \ | |
--force \ | |
--install \ | |
--reset-values \ | |
--set "version=$VERSION" \ | |
--set "generic-service.image.tag=$VERSION" \ | |
--set "generic-service.env.VERSION=$VERSION" \ | |
--timeout 10m \ | |
--values <(base64 -d <<< "$HMPPS_IP_ALLOWLIST_GROUPS_YAML") \ | |
--values "helm_deploy/values.yaml" \ | |
--values "helm_deploy/values-$ENVIRONMENT.yaml" \ | |
--wait | |
env: | |
CHART_NAME: delius-user-management | |
ENVIRONMENT: ${{ inputs.environment }} | |
VERSION: ${{ inputs.version }} | |
GITHUB_TOKEN: ${{ github.token }} | |
HMPPS_IP_ALLOWLIST_GROUPS_YAML: ${{ vars.HMPPS_IP_ALLOWLIST_GROUPS_YAML }} |