From b904dbf6b992137cf7d5bc3a582fa9da6462b127 Mon Sep 17 00:00:00 2001 From: Wang Boyu Date: Fri, 5 Jan 2024 09:07:33 +0800 Subject: [PATCH] update pre-commit and ga workflows to be consistent with mesa --- .codespellignore | 8 ++++++ .github/workflows/build_lint.yml | 17 ++++++------ .github/workflows/codespell.yml | 18 +++++++++++++ .github/workflows/release.yml | 44 ++++++++++++++++++++++++++++++++ .pre-commit-config.yaml | 16 ++++++++---- 5 files changed, 90 insertions(+), 13 deletions(-) create mode 100644 .codespellignore create mode 100644 .github/workflows/codespell.yml create mode 100644 .github/workflows/release.yml diff --git a/.codespellignore b/.codespellignore new file mode 100644 index 00000000..0ce71b7b --- /dev/null +++ b/.codespellignore @@ -0,0 +1,8 @@ +hist +hart +mutch +ist +inactivate +ue +fpr +falsy \ No newline at end of file diff --git a/.github/workflows/build_lint.yml b/.github/workflows/build_lint.yml index 2e048888..64f2f822 100644 --- a/.github/workflows/build_lint.yml +++ b/.github/workflows/build_lint.yml @@ -20,8 +20,10 @@ jobs: fail-fast: False matrix: os: [windows, ubuntu, macos] - python-version: ["3.11"] + python-version: ["3.12"] include: + - os: ubuntu + python-version: "3.11" - os: ubuntu python-version: "3.10" - os: ubuntu @@ -54,24 +56,23 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: Set up Python 3.10 + - name: Set up Python 3.12 uses: actions/setup-python@v5 with: - python-version: "3.10" - - run: pip install ruff==0.0.254 + python-version: "3.12" + - run: pip install ruff==0.1.5 - name: Lint with ruff - # Include `--format=github` to enable automatic inline annotations. # Use settings from pyproject.toml. - run: ruff . --format=github + run: ruff . lint-black: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: Set up Python 3.10 + - name: Set up Python 3.12 uses: actions/setup-python@v5 with: - python-version: "3.10" + python-version: "3.12" - run: pip install black[jupyter] - name: Lint with black run: black --check . diff --git a/.github/workflows/codespell.yml b/.github/workflows/codespell.yml new file mode 100644 index 00000000..575809a4 --- /dev/null +++ b/.github/workflows/codespell.yml @@ -0,0 +1,18 @@ +name: build + +on: + push: + branches: + - main + - release** + pull_request: + +jobs: + codespell: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: codespell-project/actions-codespell@master + with: + ignore_words_file: .codespellignore + skip: .*bootstrap.*,*.js,.*bootstrap-theme.css.map \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..aa145dc0 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,44 @@ +name: Release +on: + push: + branches: + - main + - release** + paths-ignore: + - '**.md' + - '**.rst' + pull_request: + paths-ignore: + - '**.md' + - '**.rst' + workflow_dispatch: + +permissions: + id-token: write + +jobs: + release: + name: Deploy release to PyPI + runs-on: ubuntu-latest + permissions: + id-token: write + steps: + - name: Checkout source + uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: "3.12" + - name: Install dependencies + run: pip install -U pip build wheel setuptools + - name: Build distributions + run: python -m build + - name: Upload package as artifact to GitHub + if: github.repository == 'projectmesa/mesa-geo' && startsWith(github.ref, 'refs/tags') + uses: actions/upload-artifact@v3 + with: + name: package + path: dist/ + - name: Publish package to PyPI + if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') + uses: pypa/gh-action-pypi-publish@release/v1 \ No newline at end of file diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 843d3227..4facb013 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -3,10 +3,16 @@ ci: autofix_prs: false repos: -- repo: https://github.com/psf/black - rev: 23.12.1 - hooks: - - id: black-jupyter +- repo: https://github.com/astral-sh/ruff-pre-commit + # Ruff version. + rev: v0.1.5 + hooks: + # Run the linter. + - id: ruff + types_or: [ python, pyi, jupyter ] + # Run the formatter. + - id: ruff-format + types_or: [ python, pyi, jupyter ] - repo: https://github.com/asottile/pyupgrade rev: v3.15.0 hooks: @@ -17,4 +23,4 @@ repos: hooks: - id: trailing-whitespace - id: check-toml - - id: check-yaml + - id: check-yaml \ No newline at end of file