[workflow] enable testing for develop & feature branch (#3801)

pull/3815/head
Frank Lee 2023-05-23 11:21:15 +08:00 committed by GitHub
parent ef02d7ef6d
commit ad93c736ea
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 58 additions and 50 deletions

View File

@ -3,24 +3,27 @@ name: Build on PR
on: on:
pull_request: pull_request:
types: [synchronize, opened, reopened] types: [synchronize, opened, reopened]
branches:
- "main"
- "develop"
- "feature/**"
paths: paths:
- '.github/workflows/build_on_pr.yml' # run command & env variables change - ".github/workflows/build_on_pr.yml" # run command & env variables change
- 'colossalai/**' # source code change - "colossalai/**" # source code change
- '!colossalai/**.md' # ignore doc change - "!colossalai/**.md" # ignore doc change
- 'op_builder/**' # cuda extension change - "op_builder/**" # cuda extension change
- '!op_builder/**.md' # ignore doc change - "!op_builder/**.md" # ignore doc change
- 'requirements/**' # requirements change - "requirements/**" # requirements change
- 'tests/**' # test change - "tests/**" # test change
- '!tests/**.md' # ignore doc change - "!tests/**.md" # ignore doc change
- 'pytest.ini' # test config change - "pytest.ini" # test config change
- 'setup.py' # install command change - "setup.py" # install command change
jobs: jobs:
detect: detect:
name: Detect file change name: Detect file change
if: | if: |
github.event.pull_request.draft == false && github.event.pull_request.draft == false &&
github.base_ref == 'main' &&
github.event.pull_request.base.repo.full_name == 'hpcaitech/ColossalAI' github.event.pull_request.base.repo.full_name == 'hpcaitech/ColossalAI'
outputs: outputs:
changedExtenisonFiles: ${{ steps.find-extension-change.outputs.all_changed_files }} changedExtenisonFiles: ${{ steps.find-extension-change.outputs.all_changed_files }}

View File

@ -2,47 +2,49 @@ name: Check Documentation on PR
on: on:
pull_request: pull_request:
branches:
- "main"
- "develop"
- "feature/**"
paths: paths:
- 'docs/**' - "docs/**"
jobs: jobs:
check-i18n: check-i18n:
name: Check docs in diff languages name: Check docs in diff languages
if: | if: |
github.event.pull_request.draft == false && github.event.pull_request.draft == false &&
github.base_ref == 'main' && github.event.pull_request.base.repo.full_name == 'hpcaitech/ColossalAI'
github.event.pull_request.base.repo.full_name == 'hpcaitech/ColossalAI'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- uses: actions/setup-python@v2 - uses: actions/setup-python@v2
with: with:
python-version: '3.8.14' python-version: "3.8.14"
- run: python .github/workflows/scripts/check_doc_i18n.py -d docs/source - run: python .github/workflows/scripts/check_doc_i18n.py -d docs/source
check-doc-build: check-doc-build:
name: Test if the docs can be built name: Test if the docs can be built
if: | if: |
github.event.pull_request.draft == false && github.event.pull_request.draft == false &&
github.base_ref == 'main' && github.event.pull_request.base.repo.full_name == 'hpcaitech/ColossalAI'
github.event.pull_request.base.repo.full_name == 'hpcaitech/ColossalAI'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
with: with:
path: './ColossalAI' path: "./ColossalAI"
fetch-depth: 0 fetch-depth: 0
- uses: actions/checkout@v2 - uses: actions/checkout@v2
with: with:
path: './ColossalAI-Documentation' path: "./ColossalAI-Documentation"
repository: 'hpcaitech/ColossalAI-Documentation' repository: "hpcaitech/ColossalAI-Documentation"
- uses: actions/setup-python@v2 - uses: actions/setup-python@v2
with: with:
python-version: '3.8.14' python-version: "3.8.14"
# we use the versions in the main branch as the guide for versions to display # we use the versions in the main branch as the guide for versions to display
# checkout will give your merged branch # checkout will give your merged branch
@ -57,7 +59,6 @@ jobs:
git config user.name 'github-actions' git config user.name 'github-actions'
git config user.email 'github-actions@github.com' git config user.email 'github-actions@github.com'
- name: Build docs - name: Build docs
run: | run: |
cache_dir=ColossalAI-Documentation/doc-build/.cache cache_dir=ColossalAI-Documentation/doc-build/.cache

View File

@ -1,17 +1,20 @@
name: Test Documentation on PR name: Test Documentation on PR
on: on:
pull_request: pull_request:
branches:
- "main"
- "develop"
- "feature/**"
# any change in the examples folder will trigger check for the corresponding example. # any change in the examples folder will trigger check for the corresponding example.
paths: paths:
- 'docs/source/**.md' - "docs/source/**.md"
jobs: jobs:
# This is for changed example files detect and output a matrix containing all the corresponding directory name. # This is for changed example files detect and output a matrix containing all the corresponding directory name.
detect-changed-doc: detect-changed-doc:
if: | if: |
github.event.pull_request.draft == false && github.event.pull_request.draft == false &&
github.base_ref == 'main' && github.event.pull_request.base.repo.full_name == 'hpcaitech/ColossalAI' && github.event_name == 'pull_request'
github.event.pull_request.base.repo.full_name == 'hpcaitech/ColossalAI' && github.event_name == 'pull_request'
runs-on: ubuntu-latest runs-on: ubuntu-latest
outputs: outputs:
any_changed: ${{ steps.changed-files.outputs.any_changed }} any_changed: ${{ steps.changed-files.outputs.any_changed }}
@ -26,10 +29,10 @@ jobs:
- name: Locate base commit - name: Locate base commit
id: locate-base-sha id: locate-base-sha
run: | run: |
curBranch=$(git rev-parse --abbrev-ref HEAD) curBranch=$(git rev-parse --abbrev-ref HEAD)
commonCommit=$(git merge-base origin/main $curBranch) commonCommit=$(git merge-base origin/main $curBranch)
echo $commonCommit echo $commonCommit
echo "baseSHA=$commonCommit" >> $GITHUB_OUTPUT echo "baseSHA=$commonCommit" >> $GITHUB_OUTPUT
- name: Get all changed example files - name: Get all changed example files
id: changed-files id: changed-files
@ -43,10 +46,9 @@ jobs:
check-changed-doc: check-changed-doc:
# Add this condition to avoid executing this job if the trigger event is workflow_dispatch. # Add this condition to avoid executing this job if the trigger event is workflow_dispatch.
if: | if: |
github.event.pull_request.draft == false && github.event.pull_request.draft == false &&
github.base_ref == 'main' && github.event.pull_request.base.repo.full_name == 'hpcaitech/ColossalAI' && github.event_name == 'pull_request' &&
github.event.pull_request.base.repo.full_name == 'hpcaitech/ColossalAI' && github.event_name == 'pull_request' && needs.detect-changed-doc.outputs.any_changed == 'true'
needs.detect-changed-doc.outputs.any_changed == 'true'
name: Test the changed Doc name: Test the changed Doc
needs: detect-changed-doc needs: detect-changed-doc
runs-on: [self-hosted, gpu] runs-on: [self-hosted, gpu]
@ -61,8 +63,8 @@ jobs:
- name: Checkout ColossalAI-Documentation - name: Checkout ColossalAI-Documentation
uses: actions/checkout@v2 uses: actions/checkout@v2
with: with:
path: './ColossalAI-Documentation' path: "./ColossalAI-Documentation"
repository: 'hpcaitech/ColossalAI-Documentation' repository: "hpcaitech/ColossalAI-Documentation"
- name: Install Docer - name: Install Docer
run: | run: |

View File

@ -1,17 +1,20 @@
name: Test Example on PR name: Test Example on PR
on: on:
pull_request: pull_request:
branches:
- "main"
- "develop"
- "feature/**"
# any change in the examples folder will trigger check for the corresponding example. # any change in the examples folder will trigger check for the corresponding example.
paths: paths:
- 'examples/**' - "examples/**"
jobs: jobs:
# This is for changed example files detect and output a matrix containing all the corresponding directory name. # This is for changed example files detect and output a matrix containing all the corresponding directory name.
detect-changed-example: detect-changed-example:
if: | if: |
github.event.pull_request.draft == false && github.event.pull_request.draft == false &&
github.base_ref == 'main' && github.event.pull_request.base.repo.full_name == 'hpcaitech/ColossalAI' && github.event_name == 'pull_request'
github.event.pull_request.base.repo.full_name == 'hpcaitech/ColossalAI' && github.event_name == 'pull_request'
runs-on: ubuntu-latest runs-on: ubuntu-latest
outputs: outputs:
matrix: ${{ steps.setup-matrix.outputs.matrix }} matrix: ${{ steps.setup-matrix.outputs.matrix }}
@ -26,10 +29,10 @@ jobs:
- name: Locate base commit - name: Locate base commit
id: locate-base-sha id: locate-base-sha
run: | run: |
curBranch=$(git rev-parse --abbrev-ref HEAD) curBranch=$(git rev-parse --abbrev-ref HEAD)
commonCommit=$(git merge-base origin/main $curBranch) commonCommit=$(git merge-base origin/main $curBranch)
echo $commonCommit echo $commonCommit
echo "baseSHA=$commonCommit" >> $GITHUB_OUTPUT echo "baseSHA=$commonCommit" >> $GITHUB_OUTPUT
- name: Get all changed example files - name: Get all changed example files
id: changed-files id: changed-files
@ -61,10 +64,9 @@ jobs:
check-changed-example: check-changed-example:
# Add this condition to avoid executing this job if the trigger event is workflow_dispatch. # Add this condition to avoid executing this job if the trigger event is workflow_dispatch.
if: | if: |
github.event.pull_request.draft == false && github.event.pull_request.draft == false &&
github.base_ref == 'main' && github.event.pull_request.base.repo.full_name == 'hpcaitech/ColossalAI' && github.event_name == 'pull_request' &&
github.event.pull_request.base.repo.full_name == 'hpcaitech/ColossalAI' && github.event_name == 'pull_request' && needs.detect-changed-example.outputs.anyChanged == 'true'
needs.detect-changed-example.outputs.anyChanged == 'true'
name: Test the changed example name: Test the changed example
needs: detect-changed-example needs: detect-changed-example
runs-on: [self-hosted, gpu] runs-on: [self-hosted, gpu]