name: 'Deploy Optar to k8s' on: workflow_dispatch env: ECR_REPOSITORY: optar EKS_CLUSTER_NAME: optar-dev-eks AWS_REGION: eu-central-1 # ref: https://dlmade.medium.com/ci-cd-with-github-action-and-aws-eks-5fd9714010cd jobs: build: name: Deployment runs-on: ubuntu-latest steps: - name: Set short git commit SHA id: commit uses: prompt/actions-commit-hash@v2 - name: Check out code uses: actions/checkout@v4 with: submodules: true - 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: ${{env.AWS_REGION}} - name: Login to Amazon ECR id: login-ecr uses: aws-actions/amazon-ecr-login@v1 - name: Build, tag, and push image to Amazon ECR env: ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} IMAGE_TAG: ${{ steps.commit.outputs.short }} run: | docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:v0.$IMAGE_TAG ./optar docker push $ECR_REGISTRY/$ECR_REPOSITORY:v0.$IMAGE_TAG docker tag $ECR_REGISTRY/$ECR_REPOSITORY:v0.$IMAGE_TAG $ECR_REGISTRY/$ECR_REPOSITORY:latest docker push $ECR_REGISTRY/$ECR_REPOSITORY:latest - name: Update kube config run: aws eks update-kubeconfig --name $EKS_CLUSTER_NAME --region $AWS_REGION - name: Deploy to EKS env: ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} IMAGE_TAG: ${{ steps.commit.outputs.short }} run: | kubectl apply -f ./optar/deployment.yaml