name: Docker Image CI on: push: branches: [ "master", "feat/pipeline-improvement" ] pull_request: branches: [ "master" ] env: IMAGE_TAG: ${{ github.event_name == 'push' && 'latest' || 'latest-pull-request' }} jobs: build: runs-on: ubuntu-latest steps: - name: Login to registry uses: docker/login-action@v2 with: registry: ${{ vars.REGISTRY_ADDRESS }} username: ${{ secrets.REGISTRY_ROBOT_USERNAME }} password: ${{ secrets.REGISTRY_ROBOT_PASSWORD }} - uses: actions/checkout@v4 - name: Lint helm chart run: helm lint helm-charts/kubeinvaders - name: Build the Docker image run: | docker build . --file Dockerfile --tag ${{ vars.REGISTRY_ADDRESS }}/${{ vars.REGISTRY_USERNAME }}/kubeinvaders:${{ env.IMAGE_TAG }} docker push ${{ vars.REGISTRY_ADDRESS }}/${{ vars.REGISTRY_USERNAME }}/kubeinvaders:${{ env.IMAGE_TAG }} - name: Start minikube uses: medyagh/setup-minikube@latest with: driver: docker kubernetes-version: v1.26.3 cpus: 4 memory: 2000m - name: Try the cluster! run: kubectl get pods -A - name: Deploy example run: | kubectl apply -f minikube-setup/manifests --wait=true kubectl get all -n "ns-1" - name: Deploy with helm run: | helm upgrade --install \ --atomic \ kubeinvaders \ -n kubeinvaders \ --create-namespace \ helm-charts/kubeinvaders \ --set ingress.enabled=true \ --set ingress.hostName=kubeinvaders.local \ --set-string config.target_namespace="ns-1" \ --set deployment.image.tag=${{ env.IMAGE_TAG }} \ --set deployment.image.repository=${{ vars.REGISTRY_ADDRESS }}/${{ vars.REGISTRY_USERNAME }}/kubeinvaders - name: Helm test run: | kubectl get all -n kubeinvaders helm test kubeinvaders -n kubeinvaders