name: ci_quick_checks_ubuntu
concurrency:
  group: ci_quick_checks_ubuntu-${{ github.ref }}
  cancel-in-progress: true
on:
  pull_request:
    types: [ opened, synchronize, reopened ]
  push:
    branches:
      - master
      - develop
      - 'rc/*'
  merge_group: {}

env:
  CARGO_TERM_COLOR: always
  RUST_BACKTRACE: full
  RUSTFLAGS: -D warnings
jobs:
  prologue:
    name: prologue
    if: |
       github.event_name != 'push' ||
       ( github.event_name == 'push' &&
        ( github.ref == 'refs/heads/master' ||
          (github.ref == 'refs/heads/develop' && startsWith(github.event.head_commit.message, 'Merge pull request #')) ||
          startsWith(github.ref, 'refs/heads/rc/')
        )
       ) || (github.repository_owner != 'nervosnetwork')
    runs-on: ubuntu-20.04
    outputs:
      os_skip: ${{ steps.prologue.outputs.os_skip }}
      job_skip: ${{ steps.prologue.outputs.job_skip }}
      linux_runner_label: ${{ steps.prologue.outputs.linux_runner_label }}
    steps:
    - uses: actions/checkout@v3
    - name: prologue
      id: prologue
      uses: ./.github/actions/ci_prologue
      with:
        GITHUB_EVENT_NAME: ${{ github.event_name }}
        COMMIT_MESSAGE: "${{github.event.head_commit.message}}"
        PR_COMMONS_BODY: "${{ github.event.pull_request.body }}"
        GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
        LABELS: "${{ toJson(github.event.pull_request.labels.*.name) }}"
        GITHUB_REPOSITORY: ${{ github.repository }}
        GITHUB_WORKFLOW: ${{ github.workflow }}
  ci_quick_checks_ubuntu:
    name: ci_quick_checks_ubuntu
    needs: prologue
    runs-on: ${{ needs.prologue.outputs.linux_runner_label }}
    steps:
    - uses: actions-rs/toolchain@v1
      with:
        profile: minimal
        toolchain: 1.81.0
    - run: rustup component add rustfmt
    - uses: actions/checkout@v3
    - run: cargo fmt --all -- --check
    - run: rustup component add clippy
    - run: sudo apt-get update && sudo apt-get install libssl-dev pkg-config libclang-dev -y
    - run: |
        if [[ ${{ needs.prologue.outputs.os_skip }} == run ]] && [[ ${{ needs.prologue.outputs.job_skip }} == run ]];then
            devtools/ci/ci_main.sh
        else
          echo "skip job"
          exit 0
        fi
      shell: bash
    env:
      RUNNER_LABEL: ${{ needs.prologue.outputs.runner_label }}
