Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CI: Remove unused workflow #4512

Merged
merged 4 commits into from
Jun 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .github/workflows/cuda.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,15 @@ on:
workflow_dispatch:
pull_request:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
test:
name: Test on CUDA Build
runs-on: nvidia
if: github.repository_owner == 'deepmodeling'
container:
image: ghcr.io/deepmodeling/abacus-cuda
options: --gpus all
Expand Down
39 changes: 0 additions & 39 deletions .github/workflows/static.yaml

This file was deleted.

31 changes: 16 additions & 15 deletions docs/community/cicd.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,31 @@
# Lists of continuous integration (CI) pipelines
# Lists of continuous integration (CI) actions

The directory `./github/workflows` contains the continuous integration (CI) pipelines for the project. The pipelines are written in YAML format and are executed by GitHub Actions. Check the [Actions page](https://github.com/deepmodeling/abacus-develop/actions) of the repo for the status of the pipelines.

> The tests without mentioning are not executed.
The directory `.github/workflows` contains the continuous integration (CI) actions for the project. The actions are written in YAML format and are executed by GitHub Actions. Check the [Actions page](https://github.com/deepmodeling/abacus-develop/actions) of the repo for the status of the actions.

## On Pull Request (PR)

The following CI pipelines are triggered on pull request (PR) creation or update (the user pushes a new commit to the incoming branch):

- Integration test and unit tests (`test.yml`): This pipeline builds ABACUS with all available features, runs integration tests, and runs unit tests.
The following CI actions are triggered on pull request (PR) creation or update (the user pushes a new commit to the incoming branch):

- Building tests with CMake (`build_test_cmake.yml`): This pipeline builds ABACUS with each feature separately, ensuring: (i) there are no conflicts between features, (ii) the compilation is successful whether the feature is enabled, and (iii) it works well on multiple platforms, i.e. with GNU+OpenBLAS toolchain and Intel+MKL toolchain.
- Integration test and unit tests (`test.yml`): This action builds ABACUS with all available features, runs integration tests, and runs unit tests. It also performs [static analysis](../CONTRIBUTING.md#code-formatting-style) with <pre-commit.ci>.
- Building tests with CMake (`build_test_cmake.yml`) and Makefile (`build_test_makefile.yml`): This action builds ABACUS with each feature separately, ensuring: (i) there are no conflicts between features, (ii) the compilation is successful whether the feature is enabled, and (iii) it works well on multiple platforms, i.e. with GNU+OpenBLAS toolchain and Intel+MKL toolchain.
- [Rerender the docs site](https://readthedocs.org/projects/abacus-rtd/builds/): This action rerenders the documentation site on Read the Docs. It is automatically triggered when the documentation is updated.
- Testing GPU features (`cuda.yml`): This action builds ABACUS with GPU support and runs several tests on the GPU.

- [Rerender the docs site](https://readthedocs.org/projects/abacus-rtd/builds/): This pipeline rerenders the documentation site on Read the Docs. It is automatically triggered when the documentation is updated.
> Some tests are executed on self-hosted runners, which are maintained by the deepmodeling community. To save resources, the actions triggered by new commits may cancel the previous actions in the same PR.

- Testing GPU features (`cuda.yml`): This pipeline builds ABACUS with GPU support and runs several tests on the GPU. **Currently disabled for the lack of GPU resource.**
## On PR Merge

After the PR merges into the main branch, the following pipelines are triggered:
After the PR merges into the main branch, the following actions are triggered:

- Building Docker images(`devcontainer.yml`): This pipeline builds the Docker images with latest codes and executables. The images are tagged as `abacus-gnu:latest`, `abacus-intel:latest`, and `abacus-cuda:latest`, and then pushed to the GitHub Container Registry (ghcr.io/deepmodeling) and AliCloud Container mirror(registry.dp.tech/deepmodeling). For example: `docker pull ghcr.io/deepmodeling/abacus-intel:latest`.
- Building Docker images (`devcontainer.yml`): This action builds the Docker images with latest codes and executables. The images are tagged as `abacus-gnu:latest`, `abacus-intel:latest`, and `abacus-cuda:latest`, and then pushed to the GitHub Container Registry (`ghcr.io/deepmodeling`) and AliCloud Container Registry (`registry.dp.tech/deepmodeling`, recommended for one having issue connecting to GitHub). For example: `docker pull ghcr.io/deepmodeling/abacus-intel:latest`.
- Generate doxygen site (`doxygen.yml`): This action generates the Doxygen site for the project. The site is published on [GitHub Pages](https://deepmodeling.github.io/abacus-develop/).
- Mirror the repo to Gitee (`mirror.yml`): This action mirrors the repo to [Gitee](https://gitee.com/deepmodeling/abacus-develop).

## On Routine

- Dynamic analysis (`dynamic_analysis.yml`): This pipeline runs integration tests with [AddressSanitizer](https://github.com/google/sanitizers/wiki/AddressSanitizer) to detect memory errors. The pipeline is scheduled to run **every Sunday**. The results are published on [GitHub Pages](https://deepmodeling.github.io/abacus-develop/).
- Dynamic analysis (`dynamic_analysis.yml`): This action runs integration tests with [AddressSanitizer](https://github.com/google/sanitizers/wiki/AddressSanitizer) to detect memory errors. The action is scheduled to run **every Sunday**. The results are published to [the dashboard branch](https://github.com/deepmodeling/abacus-develop/blob/dashboard/README.md).

## On Release

- Coverage test (`coverage.yml`): This pipeline builds ABACUS with all available features, runs integration tests, and runs unit tests. It also measures the code coverage of the tests. The results are published at [codecov.io](https://app.codecov.io/gh/deepmodeling/abacus-develop).
- Building tagged Docker images (`image.yml`): The built image is tagged in the pattern of `abacus:3.5.0`, and pushed to the GitHub Container Registry (ghcr.io/deepmodeling) and AliCloud Container mirror(registry.dp.tech/deepmodeling). Use `abacus:latest` to fetch the latest image. For example: `docker pull ghcr.io/deepmodeling/abacus:latest`.
- Coverage test (`coverage.yml`): This action builds ABACUS with all available features, runs integration tests, and runs unit tests. It also measures the code coverage of the tests. The results are published at [codecov.io](https://app.codecov.io/gh/deepmodeling/abacus-develop).
- Building tagged Docker images (`devcontainer.yml`): Same as that action above; in addition the built image is tagged in the pattern of `abacus-intel:3.6.0`. For example: `docker pull ghcr.io/deepmodeling/abacus-intel:3.6.0`.