From a2f1565672ebb029bdce896018e324ae0478ee6b Mon Sep 17 00:00:00 2001 From: BoxiangW <45734921+BoxiangW@users.noreply.github.com> Date: Fri, 28 Jan 2022 16:59:53 +0800 Subject: [PATCH] Update GitHub action and pre-commit settings (#196) * Update GitHub action and pre-commit settings * Update GitHub action and pre-commit settings (#198) --- .github/reviewer_list.yml | 9 +++ .github/workflows/PR_CI.yml | 83 ++++++++++++++++++++++++++++ .github/workflows/build.yml | 40 -------------- .github/workflows/close_inactive.yml | 10 ++-- .pre-commit-config.yaml | 14 +++++ README.md | 2 +- requirements/requirements.txt | 3 +- 7 files changed, 115 insertions(+), 46 deletions(-) create mode 100644 .github/reviewer_list.yml create mode 100644 .github/workflows/PR_CI.yml delete mode 100644 .github/workflows/build.yml create mode 100644 .pre-commit-config.yaml diff --git a/.github/reviewer_list.yml b/.github/reviewer_list.yml new file mode 100644 index 000000000..ce1d4849f --- /dev/null +++ b/.github/reviewer_list.yml @@ -0,0 +1,9 @@ +addReviewers: true + +addAssignees: author + +numberOfReviewers: 1 + +reviewers: + - frankleeeee + - kurisusnowdeng diff --git a/.github/workflows/PR_CI.yml b/.github/workflows/PR_CI.yml new file mode 100644 index 000000000..8a0b6afda --- /dev/null +++ b/.github/workflows/PR_CI.yml @@ -0,0 +1,83 @@ +name: Pull Request CI and Build + +on: pull_request + +jobs: + assign_reviewer: + name: Assign Reviewer for PR + runs-on: ubuntu-latest + if: github.event.pull_request.draft == false && github.base_ref == 'main' && github.event.pull_request.base.repo.full_name == 'hpcaitech/ColossalAI' && toJson(github.event.pull_request.requested_reviewers) == '[]' + steps: + - uses: kentaro-m/auto-assign-action@v1.2.1 + with: + configuration-path: '.github/reviewer_list.yml' + + build: + name: Build and Test Colossal-AI + if: ${{ always() }} && github.event.pull_request.draft == false && github.base_ref == 'main' && github.event.pull_request.base.repo.full_name == 'hpcaitech/ColossalAI' + needs: [assign_reviewer] + runs-on: [self-hosted, gpu] + container: + image: nvcr.io/nvidia/pytorch:21.07-py3 + options: --gpus all --rm --ipc=host -v /data/cifar-10:/data/cifar-10 + timeout-minutes: 20 + steps: + - name: Setup Environment + run: | + export https_proxy=http://172.17.0.1:7890 http_proxy=http://172.17.0.1:7890 all_proxy=socks5://172.17.0.1:7890 + - name: Install dependencies + run: | + pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple + pip install -U pip setuptools wheel --user + pip install pytest tensorboard deepspeed apex + - uses: actions/checkout@v2 + - name: Install Colossal-AI + run: | + pip install -r requirements/requirements.txt + pip install -v --no-cache-dir --global-option="--cuda_ext" . + - name: Unit Testing + run: | + pytest tests + env: + DATA: /data/cifar-10 + + format_check: + name: Format Check + if: ${{ always() }} && github.event.pull_request.draft == false && github.base_ref == 'main' && github.event.pull_request.base.repo.full_name == 'hpcaitech/ColossalAI' + needs: [assign_reviewer, build] + runs-on: ubuntu-latest + steps: + - name: Checkout repo + uses: actions/checkout@v2 + with: + ref: ${{ github.head_ref }} + + - name: autoyapf + id: autoyapf + uses: mritunjaysharma394/autoyapf@v2 + with: + args: --style google --recursive --in-place . + + - name: Check for modified files + id: git-check + run: echo ::set-output name=modified::$(if git diff-index --quiet HEAD --; then echo "false"; else echo "true"; fi) + + - name: Push changes + if: steps.git-check.outputs.modified == 'true' + run: | + git config --global user.name 'github-actions' + git config --global user.email 'github-actions@github.com' + git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }} + git commit -am "Automated autoyapf fixes" + + - name: Create Pull Request + # if: steps.format.outputs.has-changes == 'true' + uses: peter-evans/create-pull-request@v3 + with: + title: '[Bot] Automated PR to fix formatting errors' + body: | + Automated PR to fix formatting errors + committer: GitHub + author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> + assignees: ${{ github.actor }} + reviewers: frankleeeee diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index 9c6725e75..000000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: Build -on: - pull_request: - types: [review_requested, synchronize] - branches: - - "*" - -jobs: - build: - name: Build and test Colossal-AI - runs-on: [self-hosted, gpu] - container: - image: nvcr.io/nvidia/pytorch:21.07-py3 - options: --gpus all --rm --ipc=host -v /data/cifar-10:/data/cifar-10 - timeout-minutes: 1200 - if: github.event.pull_request.draft == false && github.base_ref == 'main' && github.event.pull_request.base.repo.full_name == 'hpcaitech/ColossalAI' && toJson(github.event.pull_request.requested_reviewers) != '[]' - steps: - - name: Setup Environment - run: | - export https_proxy=http://172.17.0.1:7890 http_proxy=http://172.17.0.1:7890 all_proxy=socks5://172.17.0.1:7890 - - name: Install dependencies - run: | - pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple - pip install -U pip setuptools wheel --user - pip install pytest tensorboard deepspeed apex - - uses: actions/checkout@v2 - - name: Install Colossal-AI - run: | - pip install -v --no-cache-dir --global-option="--cuda_ext" . - - name: Unit Testing - run: | - pytest tests - env: - DATA: /data/cifar-10 - - - - - - diff --git a/.github/workflows/close_inactive.yml b/.github/workflows/close_inactive.yml index 4139d401a..66c7bd461 100644 --- a/.github/workflows/close_inactive.yml +++ b/.github/workflows/close_inactive.yml @@ -13,10 +13,12 @@ jobs: - uses: actions/stale@v3 with: days-before-issue-stale: 14 - days-before-issue-close: 14 + days-before-issue-close: -1 stale-issue-label: "stale" stale-issue-message: "This issue is stale because it has been open for 14 days with no activity." - close-issue-message: "This issue was closed because it has been inactive for 14 days since being marked as stale." +# close-issue-message: "This issue was closed because it has been inactive for 14 days since being marked as stale." days-before-pr-stale: 14 - days-before-pr-close: 14 - repo-token: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file + days-before-pr-close: -1 + stale-pr-message: "This PR is stale because it has been open for 14 days with no activity." +# close-pr-message: "This PR was closed because it has been inactive for 14 days since being marked as stale." + repo-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 000000000..a4193fafe --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,14 @@ +repos: + - repo: https://github.com/pre-commit/mirrors-yapf + rev: v0.32.0 + hooks: + - id: yapf + args: ['--style=google', '--parallel', '--in-place'] + - repo: https://github.com/pycqa/flake8 + rev: '' + hooks: + - id: flake8 + - repo: https://github.com/pre-commit/mirrors-clang-format + rev: v13.0.0 + hooks: + - id: clang-format diff --git a/README.md b/README.md index 73553df57..dd82b91d8 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@

Paper | Documentation | Forum | Blog

- [![Build](https://github.com/hpcaitech/ColossalAI/actions/workflows/build.yml/badge.svg)](https://github.com/hpcaitech/ColossalAI/actions/workflows/build.yml) + [![Build](https://github.com/hpcaitech/ColossalAI/actions/workflows/PR_CI.yml/badge.svg)](https://github.com/hpcaitech/ColossalAI/actions/workflows/PR_CI.yml) [![Documentation](https://readthedocs.org/projects/colossalai/badge/?version=latest)](https://colossalai.readthedocs.io/en/latest/?badge=latest)
An integrated large-scale model training system with efficient parallelization techniques. diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 34bfe8676..469b4d323 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -4,4 +4,5 @@ numpy tqdm psutil tensorboard -packaging \ No newline at end of file +packaging +pre-commit