name: Build And Test

run-name: ${{ gitea.actor }} is runs ci pipeline

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

jobs:
  build-and-push:
    runs-on: ubuntu-latest
    steps:
    - name: checkout source code
      uses: actions/checkout@v3

    - name: Retrieve version # tag version
      id: img-ver
      uses: juliangruber/read-file-action@v1
      with:
        path: ./version

    - name: Install Docker // Docker 설치
      run: |
        curl -fsSL https://get.docker.com -o get-docker.sh
        sh get-docker.sh
      if: runner.os == 'Linux'

    - name: Set up Docker Buildx
      uses: https://github.com/docker/setup-buildx-action@v1

    - name: Login to Registry
      run: docker login -u ${{ secrets.DOCKER_ID }} -p ${{ secrets.DOCKER_PW }} https://harbor.icurfer.com

    - name: build
      run: docker build -t harbor.icurfer.com/py_prj/butler_ddochi:${{ steps.img-ver.outputs.content  }} .

    - name: Push to Docker
      run: docker push harbor.icurfer.com/py_prj/butler_ddochi:${{ steps.img-ver.outputs.content  }}

    ## pre cd
    - name: Setup Kustomize
      uses: yokawasa/action-setup-kube-tools@v0.9.2
      with:
        kustomize: "3.7.0"

    - name: Checkout kustomize repository
      uses: actions/checkout@v3
      with:
        repository: "icurfer/cd_butler_ddochi"
        ref: main
        token: ${{ secrets.ACTION_TOKEN }}
        path: cd_butler_ddochi

    - name: Update Kubernetes resources
      run: |
        cd cd_butler_ddochi/overlays/dev/
        kustomize edit set image \harbor.icurfer.com/py_prj/butler_ddochi:\${{ steps.img-ver.outputs.content }}
        cat kustomization.yaml
    
    ## cd commit
    - name: Commit files
      run: |
        cd cd_butler_ddochi
        git config --global user.email "icurfer@gmail.com"
        git config --global user.name "icurfer"
        git commit -am "Update image tag"
        git push -u origin main