diff --git a/.github/workflows/static.yml b/.github/workflows/static.yml index 60a2eecc..172e8ace 100644 --- a/.github/workflows/static.yml +++ b/.github/workflows/static.yml @@ -8,11 +8,9 @@ on: pull_request: env: + DEEPLINK_PATH: /mnt/cache/share/deeplinkci/github/${{ github.repository }} ENV_SOURCE: /mnt/cache/share/platform/env/dipu_latest PROXY_SOURCE: /mnt/cache/share/platform/env/proxy - WORKSPACE: /mnt/cache/share/deeplinkci/github/${{ github.repository }}/${{ github.run_number }} - CODE_SOURCE: source - CLANGD_TIDY_SOURCE: clangd-tidy CLANGD_EXEC: /mnt/cache/share/platform/dep/clang-17/bin/clangd concurrency: @@ -20,21 +18,29 @@ concurrency: cancel-in-progress: true jobs: - checkout-code: - name: checkout code + static-checks-on-sco: + name: static checks on sco runs-on: tps-sco-ci steps: - - name: prepare workspace + - name: setting up environment + run: | + echo "WORKSPACE=${DEEPLINK_PATH}/${{ github.run_number }}" >> "${GITHUB_ENV}" + echo "CODE_SOURCE=${WORKSPACE}/source" >> "${GITHUB_ENV}" + echo "CLANGD_TIDY_SOURCE=${WORKSPACE}/clangd-tidy" >> "${GITHUB_ENV}" + echo "CLANGD_TIDY_LOG=${WORKSPACE}/clang-tidy.log" >> "${GITHUB_ENV}" + - name: clean obsolete workspaces & prepare workspace run: | set -euxo pipefail - mkdir -p ${WORKSPACE} && cd ${WORKSPACE} && pwd + ls -la ${DEEPLINK_PATH} + rm -rf ${WORKSPACE} + find ${DEEPLINK_PATH} -maxdepth 1 -mmin +480 -type d -exec bash -c 'echo clean "$0" && rm -rf "$0"' {} \; + mkdir -p ${WORKSPACE} - name: checkout code run: | set -euo pipefail source ${PROXY_SOURCE} set -x - cd ${WORKSPACE} && pwd - [[ ! -d ${CODE_SOURCE} ]] || rm -rf ${CODE_SOURCE} + rm -rf ${CODE_SOURCE} if [ -n "${{ github.event.pull_request.head.repo.full_name }}" ] && [[ ! "${{ github.event.pull_request.head.repo.full_name }}" == "${{ github.repository }}" ]]; then git clone ${{ github.event.pull_request.head.repo.clone_url }} ${CODE_SOURCE} cd ${CODE_SOURCE} && git checkout ${{ github.event.pull_request.head.sha }} @@ -54,19 +60,17 @@ jobs: set -euo pipefail source ${PROXY_SOURCE} set -x - cd ${WORKSPACE}/${CODE_SOURCE} && pwd git -c advice.detachedHead=false clone --depth 1 -b v0.1.3 https://github.com/lljbash/clangd-tidy.git ${CLANGD_TIDY_SOURCE} - - build-and-tidy: - name: build and tidy - runs-on: tps-sco-ci - needs: [checkout-code] - steps: - name: build run: | set -euxo pipefail - srun --job-name=${GITHUB_JOB} bash -c "source ${ENV_SOURCE} && cd ${WORKSPACE}/${CODE_SOURCE} && pwd && pip install -e . -v -t install" + srun --job-name=${GITHUB_JOB} bash -c "source ${ENV_SOURCE} && cd ${CODE_SOURCE} && pwd && pip install -e . -v -t install" - name: clang-tidy run: | set -euxo pipefail - srun --job-name=${GITHUB_JOB} bash -c "source ${ENV_SOURCE} && cd ${WORKSPACE}/${CODE_SOURCE} && pwd && git ls-files csrc | xargs ${CLANGD_TIDY_SOURCE}/clangd-tidy --clangd-executable=${CLANGD_EXEC} --github --git-root=${WORKSPACE}/${CODE_SOURCE} -j4 -o clang-tidy.log" || (cat ${WORKSPACE}/${CODE_SOURCE}/clang-tidy.log && false) + srun --job-name=${GITHUB_JOB} bash -c "source ${ENV_SOURCE} && cd ${CODE_SOURCE} && pwd && git ls-files csrc | xargs ${CLANGD_TIDY_SOURCE}/clangd-tidy --clangd-executable=${CLANGD_EXEC} --github --git-root=${CODE_SOURCE} -j4 -o ${CLANGD_TIDY_LOG} || (cat ${CLANGD_TIDY_LOG} && false) + - name: cleanup + if: always() + run: | + set -euxo pipefail + rm -rf ${CODE_SOURCE}/build/.cache