Skip to content

Development: Add K8s deployment #5

Development: Add K8s deployment

Development: Add K8s deployment #5

Workflow file for this run

name: CI
on:
push:
branches:
- main
paths-ignore:
- "**.md"
pull_request:
branches:
- main
paths-ignore:
- "**.md"
release:
types: [released, prereleased]
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
packages: write
actions: write
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Setup Go
uses: actions/setup-go@v6
with:
go-version: 1.25
cache-dependency-path: "**/*.sum"
- name: Install dependencies
run: cd HadesArtemisAdapter && go mod download
- name: Test
run: cd HadesArtemisAdapter && go test ./... -v -race -coverprofile=coverage.out
- name: Upload coverage
uses: codecov/codecov-action@v4
if: always()
with:
files: ./HadesArtemisAdapter/coverage.out
fail_ci_if_error: false
build-artemis-adapter:
needs: test
if: github.actor != 'dependabot[bot]'
uses: ls1intum/.github/.github/workflows/build-and-push-docker-image.yml@v1.2.0
with:
image-name: ls1intum/hades-artemis-adapter
docker-file: ./Dockerfile
secrets: inherit
deploy:
needs: [build-artemis-adapter]
runs-on: ubuntu-latest
environment:
name: hades-artemis-adapter-k8s
url: https://hades-artemis-connector.student.k8s.aet.cit.tum.de
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Setup Helm
uses: azure/setup-helm@v4
with:
version: v3.14.0
- name: Setup kubectl
uses: azure/setup-kubectl@v4
with:
version: 'latest'
- name: Setup Kubeconfig
run: |
# Write kubeconfig from secret to file
echo "${{ secrets.KUBECONFIG }}" > kubeconfig
export KUBECONFIG=$PWD/kubeconfig
chmod 600 kubeconfig
# Verify connection to cluster
kubectl config get-contexts
kubectl get nodes
- name: Deploy to Kubernetes
env:
KUBECONFIG: ${{ github.workspace }}/kubeconfig
run: |
helm upgrade --install hades-artemis-adapter ./helm/hades-artemis-adapter -f ./helm/values-deploy.yaml \
--namespace hades-artemis-connector --create-namespace \
--set image.tag="${{ needs.build-artemis-adapter.outputs.image_tag }}" \
--set env.ARTEMIS_BASE_URL="https://artemis-test8.artemis.cit.tum.de" \
--set env.ARTEMIS_AUTH_TOKEN="${{ secrets.ARTEMIS_AUTH_TOKEN }}"