name: Update CI docker image
on:
  pull_request:
    paths:
      - 'docker/ci/**'
      - 'docker/compilers/**'
      - .github/workflows/update_docker_ci.yml
  push:
    branches: [develop]
    paths:
      - 'docker/ci/**'        # CI image must update when either its dockerfile changes
      - 'docker/compilers/**' # or any compilers changed and were pushed by hand
      - .github/workflows/update_docker_ci.yml
  workflow_dispatch:

jobs:
  build_and_push:
    name: Build and push docker image
    runs-on: [self-hosted, heavy]
    steps:
      - uses: actions/checkout@v4
      - uses: ./.github/actions/build_docker_image
        env:
          DOCKERHUB_USER: ${{ secrets.DOCKERHUB_USER }}
          DOCKERHUB_PW: ${{ secrets.DOCKERHUB_PW }}
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          image_name: rippleci/clio_ci
          push_image: ${{ github.event_name != 'pull_request' }}
          directory: docker/ci
          tags: |
            type=raw,value=latest
            type=raw,value=gcc_12_clang_16
            type=raw,value=${{ github.sha }}
          platforms: linux/amd64,linux/arm64
          description: CI image for XRPLF/clio.
