name: WoboqBuilder
env:
  # Force the stdout and stderr streams to be unbuffered
  PYTHONUNBUFFERED: 1

concurrency:
  group: woboq
on: # yamllint disable-line rule:truthy
  schedule:
    - cron: '0 */18 * * *'
  workflow_dispatch:
jobs:
  # don't use dockerhub push because this image updates so rarely
  WoboqCodebrowser:
    runs-on: [self-hosted, style-checker]
    steps:
      - name: Set envs
        run: |
          cat >> "$GITHUB_ENV" << 'EOF'
          TEMP_PATH=${{runner.temp}}/codebrowser
          REPO_COPY=${{runner.temp}}/codebrowser/ClickHouse
          IMAGES_PATH=${{runner.temp}}/images_path
          EOF
      - name: Clear repository
        run: |
          sudo rm -fr "$GITHUB_WORKSPACE" && mkdir "$GITHUB_WORKSPACE"
      - name: Check out repository code
        uses: actions/checkout@v2
        with:
          submodules: 'true'
      - name: Codebrowser
        run: |
          sudo rm -fr "$TEMP_PATH"
          mkdir -p "$TEMP_PATH"
          cp -r "$GITHUB_WORKSPACE" "$TEMP_PATH"
          cd "$REPO_COPY/tests/ci" && python3 codebrowser_check.py
      - name: Cleanup
        if: always()
        run: |
          docker ps --quiet | xargs --no-run-if-empty docker kill ||:
          docker ps --all --quiet | xargs --no-run-if-empty docker rm -f ||:
          sudo rm -fr "$TEMP_PATH"