name: Build & Deploy Homepage on: push: branches: - main - master env: REGISTRY: localhost:5000 IMAGE: invyone/homepage jobs: build-and-deploy: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set commit SHA run: echo "SHORT_SHA=$(echo ${{ github.sha }} | cut -c1-7)" >> $GITHUB_ENV - name: Build image run: | docker build -t ${{ env.REGISTRY }}/${{ env.IMAGE }}:${{ env.SHORT_SHA }} . - name: Push image run: | docker push ${{ env.REGISTRY }}/${{ env.IMAGE }}:${{ env.SHORT_SHA }} docker tag ${{ env.REGISTRY }}/${{ env.IMAGE }}:${{ env.SHORT_SHA }} ${{ env.REGISTRY }}/${{ env.IMAGE }}:latest docker push ${{ env.REGISTRY }}/${{ env.IMAGE }}:latest - name: Deploy to Kubernetes run: | export KUBECONFIG=/home/chpark/.kube/config kubectl apply -f k8s/namespace.yaml kubectl apply -f k8s/deployment.yaml kubectl apply -f k8s/service.yaml kubectl set image deployment/homepage \ homepage=${{ env.REGISTRY }}/${{ env.IMAGE }}:${{ env.SHORT_SHA }} \ -n invyone-homepage kubectl rollout status deployment/homepage -n invyone-homepage --timeout=120s