name: Deploy Backend Development Environment on: push: branches: [ dev ] workflow_dispatch: env: ENV_NAME: dev IMAGE_NAME: csa-backend REGISTRY: ${{ secrets.REGISTRY_URL }} jobs: build-and-deploy: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Set image tag run: | echo "IMAGE_TAG=$(git rev-parse --short HEAD)" >> $GITHUB_ENV - name: Login to registry run: | echo "${{ secrets.REGISTRY_PASSWORD }}" | sudo docker login $REGISTRY \ -u "${{ secrets.REGISTRY_USERNAME }}" --password-stdin - name: Build and push image run: | sudo docker build -t $REGISTRY/$IMAGE_NAME:$IMAGE_TAG . sudo docker push $REGISTRY/$IMAGE_NAME:$IMAGE_TAG - name: Clone manifest repo run: | git clone https://oauth2:${{ secrets.MANIFEST_REPO_TOKEN }}@${{ secrets.MANIFEST_REPO_URL }} manifest cd manifest git checkout $ENV_NAME - name: Install kustomize run: | curl -s https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh | bash sudo mv kustomize /usr/local/bin/ - name: Update kustomization (DEV) run: | cd manifest/overlays kustomize edit set image \ $REGISTRY/$IMAGE_NAME=$REGISTRY/$IMAGE_NAME:$IMAGE_TAG - name: Commit manifest update run: | cd manifest git config user.name "csa-ci" git config user.email "ci@gitea.local" git commit -am "deploy(${ENV_NAME}): update backend image to $IMAGE_TAG" git push origin $ENV_NAME - name: Cleanup workspace run: | rm -rf manifest