Skip to content

update-staging

update-staging #189

name: Release Charts
on:
push:
branches:
- develop
repository_dispatch:
types:
- update-staging
jobs:
release:
environment: develop
permissions:
contents: write
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
submodules: true
- name: Checkout latest spec
run: |
git submodule set-branch --branch develop specs &&
git submodule update --init --recursive
- name: Configure Git
run: |
git config user.name "$GITHUB_ACTOR"
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
- name: Calculate new version
id: resolve_version
uses: mathieudutour/github-tag-action@v6.1
with:
dry_run: true
github_token: ${{ secrets.GITHUB_TOKEN }}
tag_prefix: 'transport-management-'
- name: Set new version
id: version
run: |
echo NEW_VERSION=$(echo ${{ steps.resolve_version.outputs.new_tag }}|sed s/transport-management-//) >> $GITHUB_ENV
- name: Update versions
run: |
sed -i 's/version: .*/version: ${{ env.NEW_VERSION }}/g' ./charts/transport-management/Chart.yaml &&
sed -i 's/version: .*/version: ${{ env.NEW_VERSION }}/g' ./charts/transport-management/charts/auth/Chart.yaml &&
sed -i 's/version: .*/version: ${{ env.NEW_VERSION }}/g' ./charts/transport-management/charts/tyk-gateway/Chart.yaml &&
sed -i 's/version: .*/version: ${{ env.NEW_VERSION }}/g' ./charts/transport-management/charts/tyk-redis/Chart.yaml &&
sed -i 's/version: .*/version: ${{ env.NEW_VERSION }}/g' ./charts/transport-management/charts/vehicle-data-receiver/Chart.yaml &&
sed -i 's/version: .*/version: ${{ env.NEW_VERSION }}/g' ./charts/transport-management/charts/vehicle-management-service/Chart.yaml &&
sed -i 's/version: .*/version: ${{ env.NEW_VERSION }}/g' ./charts/transport-management/charts/work-planning-service/Chart.yaml &&
sed -i 's/version: .*/version: ${{ env.NEW_VERSION }}/g' ./charts/transport-management/charts/delivery-info-service/Chart.yaml &&
sed -i 's/version: .*/version: ${{ env.NEW_VERSION }}/g' ./charts/transport-management/charts/user-management-service/Chart.yaml &&
git add ./charts/transport-management/Chart.yaml ./charts/transport-management/charts/auth/Chart.yaml ./charts/transport-management/charts/tyk-gateway/Chart.yaml ./charts/transport-management/charts/tyk-redis/Chart.yaml ./charts/transport-management/charts/vehicle-data-receiver/Chart.yaml ./charts/transport-management/charts/vehicle-management-service/Chart.yaml ./charts/transport-management/charts/work-planning-service/Chart.yaml ./charts/transport-management/charts/delivery-info-service/Chart.yaml ./charts/transport-management/charts/user-management-service/Chart.yaml
- name: Resolve auth docker image sha
id: auth-tag
run: |
docker pull ghcr.io/metatavu/vp-kuljetus-transport-management-keycloak:develop &&
echo AUTH_IMAGE_SHA=$(docker inspect ghcr.io/metatavu/vp-kuljetus-transport-management-keycloak:develop|jq '.[].RepoDigests[0]'|sed s/\"//g|sed 's/[a-z\.\/\-]*@sha256://') >> $GITHUB_OUTPUT
- name: Update auth image version
run: |
sed -i 's/sha256: .*/sha256: ${{ steps.auth-tag.outputs.AUTH_IMAGE_SHA }}/g' ./charts/transport-management/charts/auth/values.yaml &&
git add ./charts/transport-management/charts/auth/values.yaml
- name: Resolve data receiver project docker image sha
id: data-receiver-tag
run: |
docker pull ghcr.io/metatavu/vp-kuljetus-vehicle-data-receiver:develop &&
echo DATA_RECIVER_IMAGE_SHA=$(docker inspect ghcr.io/metatavu/vp-kuljetus-vehicle-data-receiver:develop|jq '.[].RepoDigests[0]'|sed s/\"//g|sed 's/[a-z\.\/\-]*@sha256://') >> $GITHUB_OUTPUT
- name: Update data receiver project image version
run: |
sed -i 's/sha256: .*/sha256: ${{ steps.data-receiver-tag.outputs.DATA_RECIVER_IMAGE_SHA }}/g' ./charts/transport-management/charts/vehicle-data-receiver/values.yaml &&
git add ./charts/transport-management/charts/vehicle-data-receiver/values.yaml
- name: Resolve vehicle management service project docker image sha
id: vehicle-management-service-tag
run: |
docker pull ghcr.io/metatavu/vp-kuljetus-vehicle-management-service-api:develop &&
echo VEHICLE_MANAGEMENT_SERVICE_IMAGE_SHA=$(docker inspect ghcr.io/metatavu/vp-kuljetus-vehicle-management-service-api:develop|jq '.[].RepoDigests[0]'|sed s/\"//g|sed 's/[a-z\.\/\-]*@sha256://') >> $GITHUB_OUTPUT
- name: Update vehicle management service image version
run: |
sed -i 's/sha256: .*/sha256: ${{ steps.vehicle-management-service-tag.outputs.VEHICLE_MANAGEMENT_SERVICE_IMAGE_SHA }}/g' ./charts/transport-management/charts/vehicle-management-service/values.yaml &&
git add ./charts/transport-management/charts/vehicle-management-service/values.yaml
- name: Resolve work planning service project docker image sha
id: work-planning-service-tag
run: |
docker pull ghcr.io/metatavu/vp-kuljetus-work-planning-service-api:develop &&
echo WORK_PLANNING_SERVICE_IMAGE_SHA=$(docker inspect ghcr.io/metatavu/vp-kuljetus-work-planning-service-api:develop|jq '.[].RepoDigests[0]'|sed s/\"//g|sed 's/[a-z\.\/\-]*@sha256://') >> $GITHUB_OUTPUT
- name: Update work planning service image version
run: |
sed -i 's/sha256: .*/sha256: ${{ steps.work-planning-service-tag.outputs.WORK_PLANNING_SERVICE_IMAGE_SHA }}/g' ./charts/transport-management/charts/work-planning-service/values.yaml &&
git add ./charts/transport-management/charts/work-planning-service/values.yaml
- name: Resolve delivery info service project docker image sha
id: delivery-info-service-tag
run: |
docker pull ghcr.io/metatavu/vp-kuljetus-delivery-info-service-api:develop &&
echo DELIVERY_INFO_SERVICE_IMAGE_SHA=$(docker inspect ghcr.io/metatavu/vp-kuljetus-delivery-info-service-api:develop|jq '.[].RepoDigests[0]'|sed s/\"//g|sed 's/[a-z\.\/\-]*@sha256://') >> $GITHUB_OUTPUT
- name: Update delivery info service image version
run: |
sed -i 's/sha256: .*/sha256: ${{ steps.delivery-info-service-tag.outputs.DELIVERY_INFO_SERVICE_IMAGE_SHA }}/g' ./charts/transport-management/charts/delivery-info-service/values.yaml &&
git add ./charts/transport-management/charts/delivery-info-service/values.yaml
- name: Resolve user management service project docker image sha
id: user-management-service-tag
run: |
docker pull ghcr.io/metatavu/vp-kuljetus-user-management-service-api:develop &&
echo USER_MANAGEMENT_SERVICE_IMAGE_SHA=$(docker inspect ghcr.io/metatavu/vp-kuljetus-user-management-service-api:develop|jq '.[].RepoDigests[0]'|sed s/\"//g|sed 's/[a-z\.\/\-]*@sha256://') >> $GITHUB_OUTPUT
- name: Update user management service image version
run: |
sed -i 's/sha256: .*/sha256: ${{ steps.user-management-service-tag.outputs.USER_MANAGEMENT_SERVICE_IMAGE_SHA }}/g' ./charts/transport-management/charts/user-management-service/values.yaml &&
git add ./charts/transport-management/charts/user-management-service/values.yaml
- name: Commit changes
run: |
git config --local user.email "github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
git commit --allow-empty -m "Updated chart versions"
- name: Push version changes to develop
uses: ad-m/github-push-action@v0.6.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: develop
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_REGION }}
- name: Update kube config
run: aws eks update-kubeconfig --name ${{ secrets.EKS_CLUSTER_NAME }} --region ${{ secrets.AWS_REGION }}
- name: Install Helm
uses: azure/setup-helm@v3
- name: Install Chart
uses: WyriHaximus/github-action-helm3@v3
with:
exec: |
echo "ingress:" > new-values.yaml &&
echo " annotations:" >> new-values.yaml &&
echo " cert-manager.io/cluster-issuer: ${{ secrets.K8S_CLUSTER_ISSUER }}" >> new-values.yaml &&
echo " ingress.kubernetes.io/force-ssl-redirect: \"true\"" >> new-values.yaml &&
echo " ingress.kubernetes.io/proxy-body-size: 150m" >> new-values.yaml &&
echo " kubernetes.io/ingress.class: nginx" >> new-values.yaml &&
echo " nginx.ingress.kubernetes.io/proxy-body-size: 150m" >> new-values.yaml &&
echo " nginx.org/client-max-body-size: 150m" >> new-values.yaml &&
echo " nginx.org/proxy-connect-timeout: 30s" >> new-values.yaml &&
echo " nginx.org/proxy-read-timeout: 30s" >> new-values.yaml &&
echo " labels:" >> new-values.yaml &&
echo " use-cloudflare-solver: \"true\"" >> new-values.yaml &&
echo " tls:" >> new-values.yaml &&
echo " secretName: ${{ secrets.K8S_TLS_SECRET_NAME }}" >> new-values.yaml &&
echo "tyk:" >> new-values.yaml &&
echo " hostname: ${{ secrets.TYK_HOSTNAME }}" >> new-values.yaml &&
echo "auth:" >> new-values.yaml &&
echo " hostname: ${{ secrets.AUTH_HOSTNAME }}" >> new-values.yaml &&
echo "vehicle-data-receiver:" >> new-values.yaml &&
echo " storage:" >> new-values.yaml &&
echo " size: ${{ secrets.K8S_DATA_RECEIVER_STORAGE_SIZE }}" >> new-values.yaml &&
echo " storageClass: ${{ secrets.K8S_DATA_RECEIVER_STORAGE_CLASS }}" >> new-values.yaml &&
helm upgrade transport-management ./charts/transport-management --namespace ${{ secrets.K8S_NAMESPACE }} -f new-values.yaml