Skip to content

Commit

Permalink
Merge pull request #96 from ASFHyP3/develop
Browse files Browse the repository at this point in the history
Release Ruff
  • Loading branch information
jhkennedy authored Nov 30, 2023
2 parents cdf3e22 + 9c2d56b commit 1162721
Show file tree
Hide file tree
Showing 11 changed files with 154 additions and 23 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/changelog.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,6 @@ on:
- develop
jobs:
call-changelog-check-workflow:
uses: ASFHyP3/actions/.github/workflows/reusable-changelog-check.yml@v0.8.2
uses: ASFHyP3/actions/.github/workflows/reusable-changelog-check.yml@v0.8.3
secrets:
USER_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2 changes: 1 addition & 1 deletion .github/workflows/create-jira-issue.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:

jobs:
call-create-jira-issue-workflow:
uses: ASFHyP3/actions/.github/workflows/reusable-create-jira-issue.yml@v0.8.2
uses: ASFHyP3/actions/.github/workflows/reusable-create-jira-issue.yml@v0.8.3
secrets:
JIRA_BASE_URL: ${{ secrets.JIRA_BASE_URL }}
JIRA_USER_EMAIL: ${{ secrets.JIRA_USER_EMAIL }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/labeled-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ on:

jobs:
call-labeled-pr-check-workflow:
uses: ASFHyP3/actions/.github/workflows/reusable-labeled-pr-check.yml@v0.8.2
uses: ASFHyP3/actions/.github/workflows/reusable-labeled-pr-check.yml@v0.8.3
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:

jobs:
call-release-workflow:
uses: ASFHyP3/actions/.github/workflows/reusable-release.yml@v0.8.2
uses: ASFHyP3/actions/.github/workflows/reusable-release.yml@v0.8.3
with:
release_prefix: Actions
secrets:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/reusable-docker-ecr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ jobs:
aws-region: ${{ inputs.aws_region }}

- name: Login to Amazon ECR
uses: aws-actions/amazon-ecr-login@v1
uses: aws-actions/amazon-ecr-login@v2

- name: Lowercase repo for container registry
run: |
Expand Down
24 changes: 24 additions & 0 deletions .github/workflows/reusable-ruff.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
on:
workflow_call:

jobs:
check-with-ruff:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Install Python
uses: actions/setup-python@v4
with:
python-version: 3.x

- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install ruff
- name: Ruff linting check
run: ruff check --output-format=github .

- name: Ruff format check
run: ruff format --diff .
2 changes: 1 addition & 1 deletion .github/workflows/static-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ on: push

jobs:
call-secrets-analysis-workflow:
uses: ASFHyP3/actions/.github/workflows/reusable-secrets-analysis.yml@v0.8.2
uses: ASFHyP3/actions/.github/workflows/reusable-secrets-analysis.yml@v0.8.3
2 changes: 1 addition & 1 deletion .github/workflows/tag-version.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@ on:

jobs:
call-bump-version-workflow:
uses: ASFHyP3/actions/.github/workflows/reusable-bump-version.yml@v0.8.2
uses: ASFHyP3/actions/.github/workflows/reusable-bump-version.yml@v0.8.3
secrets:
USER_TOKEN: ${{ secrets.TOOLS_BOT_PAK }}
50 changes: 50 additions & 0 deletions .github/workflows/update-examples.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Update Actions Examples

on:
push:
tags:
- v*

jobs:
call-git-object-name-workflow:
uses: ASFHyP3/actions/.github/workflows/reusable-git-object-name.yml@v0.8.4

upate_actions_examples:
needs: call-git-object-name-workflow
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
token: ${{ secrets.TOOLS_BOT_PAK }}

- name: Create update branch
id: update
env:
ACTIONS_VERSION: ${{ needs.call-git-object-name-workflow.outputs.name }}
UPDATE_BRANCH: update-examples-to-${{ needs.call-git-object-name-workflow.outputs.name }}
run: |
git config user.name "tools-bot"
git config user.email "UAF-asf-apd@alaska.edu"
echo "::set-output name=branch::${UPDATE_BRANCH}"
git checkout -b ${UPDATE_BRANCH}
export SEARCH_PATTERN='(ASFHyP3/actions/.github/workflows/.*.yml)@v[0-9]+\.[0-9]+\.[0-9]+'
sed -i -r "s|$SEARCH_PATTERN|\1@${ACTIONS_VERSION}|g" README.md
git commit -am "Bump actions example's version to ${ACTIONS_VERSION}"
git push origin ${UPDATE_BRANCH}
- name: open PR
uses: repo-sync/pull-request@v2
with:
source_branch: ${{ steps.update.outputs.branch }}
destination_branch: develop
pr_title: Update Actions example versions to ${{ needs.call-git-object-name-workflow.outputs.name }}
pr_body: |
PR created by a new `v*` tag push event
pr_assignee: ASFHyP3/tools
pr_label: tools-bot
pr_draft: false
pr_allow_empty: true
github_token: ${{ secrets.TOOLS_BOT_PAK }}
10 changes: 9 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,13 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [PEP 440](https://www.python.org/dev/peps/pep-0440/)
and uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.9.0]

### Added
- [`reusable-ruff`](.github/workflows/reusable-ruff.yml) reusable workflow for perform linting and static analysis
- with [Ruff](https://github.com/astral-sh/ruff).
- [`update-examples`](.github/workflows/update-examples.yml) workflow to keep the pinned version number in the README
- examples up to date.

## [0.8.3]

Expand All @@ -15,7 +22,8 @@ and uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [0.8.2]

### Changed
* `reusable-pytest` and `reusable-version-info` now use [`setup-micromamba`](https://github.com/mamba-org/setup-micromamba) rather than `provision-with-micromamba` which has been deprecated.
* `reusable-pytest` and `reusable-version-info` now use [`setup-micromamba`](https://github.com/mamba-org/setup-micromamba) rather than
`provision-with-micromamba` which has been deprecated.

## [0.8.1]

Expand Down
79 changes: 64 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ on:

jobs:
call-bump-version-workflow:
uses: ASFHyP3/actions/.github/workflows/reusable-bump-version.yml@v0.8.2
uses: ASFHyP3/actions/.github/workflows/reusable-bump-version.yml@v0.8.3
with:
user: tools-bot # Optional; default shown
email: UAF-asf-apd@alaska.edu # Optional; default shown
Expand Down Expand Up @@ -57,7 +57,7 @@ on:
jobs:
call-changelog-check-workflow:
uses: ASFHyP3/actions/.github/workflows/reusable-changelog-check.yml@v0.8.2
uses: ASFHyP3/actions/.github/workflows/reusable-changelog-check.yml@v0.8.3
secrets:
USER_TOKEN: ${{ secrets.GITHUB_TOKEN }}
```
Expand All @@ -77,7 +77,7 @@ on:
jobs:
call-create-jira-issue-workflow:
uses: ASFHyP3/actions/.github/workflows/reusable-create-jira-issue.yml@v0.8.2
uses: ASFHyP3/actions/.github/workflows/reusable-create-jira-issue.yml@v0.8.3
secrets:
JIRA_BASE_URL: ${{ secrets.JIRA_BASE_URL }}
JIRA_USER_EMAIL: ${{ secrets.JIRA_USER_EMAIL }}
Expand Down Expand Up @@ -130,13 +130,13 @@ on:
jobs:
call-version-info-workflow:
uses: ASFHyP3/actions/.github/workflows/reusable-version-info.yml@v0.8.2
uses: ASFHyP3/actions/.github/workflows/reusable-version-info.yml@v0.8.3
with:
conda_env_name: hyp3-plugin
call-docker-ecr-workflow:
needs: call-version-info-workflow
uses: ASFHyP3/actions/.github/workflows/reusable-docker-ecr.yml@v0.8.2
uses: ASFHyP3/actions/.github/workflows/reusable-docker-ecr.yml@v0.8.3
with:
version_tag: ${{ needs.call-version-info-workflow.outputs.version_tag }}
ecr_registry: 845172464411.dkr.ecr.us-west-2.amazonaws.com
Expand Down Expand Up @@ -171,13 +171,13 @@ on:
jobs:
call-version-info-workflow:
uses: ASFHyP3/actions/.github/workflows/reusable-version-info.yml@v0.8.2
uses: ASFHyP3/actions/.github/workflows/reusable-version-info.yml@v0.8.3
with:
conda_env_name: hyp3-plugin
call-docker-ghcr-workflow:
needs: call-version-info-workflow
uses: ASFHyP3/actions/.github/workflows/reusable-docker-ghcr.yml@v0.8.2
uses: ASFHyP3/actions/.github/workflows/reusable-docker-ghcr.yml@v0.8.3
with:
version_tag: ${{ needs.call-version-info-workflow.outputs.version_tag }}
user: ${{ github.actor }}
Expand All @@ -198,14 +198,63 @@ on: push
jobs:
call-flake8-workflow:
uses: ASFHyP3/actions/.github/workflows/reusable-flake8.yml@v0.8.2
uses: ASFHyP3/actions/.github/workflows/reusable-flake8.yml@v0.8.3
with:
local_package_names: hyp3_plugin # Required; comma-seperated list of names that should be considered local to your application
excludes: hyp3_plugin/ugly.py # Optional; comma-separated list of glob patterns to exclude from checks
```

to ensure the Python code is styled correctly.

### [`reusable-ruff.yml`](./.github/workflows/reusable-ruff.yml)

Runs [Ruff](https://docs.astral.sh/ruff/) to enforce a configurable Python style guide. Use like:

```yaml
name: Static analysis
on: push
jobs:
call-ruff-workflow:
uses: ASFHyP3/actions/.github/workflows/reusable-ruff.yml@v0.8.3
```

to ensure the Python code is styled correctly.

To conform to ASFHyP3's Python style add the following to your project's `pyproject.toml`:
```toml
[tool.ruff]
line-length = 120
src = ["src", "tests"]
[tool.ruff.format]
indent-style = "space"
quote-style = "single"
[tool.ruff.lint]
extend-select = [
"I", # isort: https://docs.astral.sh/ruff/rules/#isort-i
"UP", # pyupgrade: https://docs.astral.sh/ruff/rules/#pyupgrade-up
"D", # pydocstyle: https://docs.astral.sh/ruff/rules/#pydocstyle-d
"ANN", # annotations: https://docs.astral.sh/ruff/rules/#flake8-annotations-ann
"PTH", # use-pathlib-pth: https://docs.astral.sh/ruff/rules/#flake8-use-pathlib-pth
]
[tool.ruff.lint.pydocstyle]
convention = "google"
[tool.ruff.lint.isort]
case-sensitive = true
lines-after-imports = 2
```

Ruff can automatically fix many linting errors and reformat code to match your Python style by running these commands:
```shell
ruff check --fix .
ruff format .
```

### [`reusable-git-object-name.yml`](./.github/workflows/reusable-git-object-name.yml)

Outputs the human-readable git object name from [`git describe --dirty --tags --long --match "*[0-9]*"`](https://git-scm.com/docs/git-describe)
Expand All @@ -226,7 +275,7 @@ on:
jobs:
call-git-object-name-workflow:
uses: ASFHyP3/actions/.github/workflows/reusable-git-object-name.yml@v0.8.2
uses: ASFHyP3/actions/.github/workflows/reusable-git-object-name.yml@v0.8.3
echo-git-object-name-outputs:
needs: call-git-object-name-workflow
Expand Down Expand Up @@ -256,7 +305,7 @@ on:
jobs:
call-labeled-pr-check-workflow:
uses: ASFHyP3/actions/.github/workflows/reusable-labeled-pr-check.yml@v0.8.2
uses: ASFHyP3/actions/.github/workflows/reusable-labeled-pr-check.yml@v0.8.3
```
to ensure a release label is included on any PR to `main`.

Expand All @@ -280,7 +329,7 @@ on:
jobs:
call-pytest-workflow:
uses: ASFHyP3/actions/.github/workflows/reusable-pytest.yml@v0.8.2
uses: ASFHyP3/actions/.github/workflows/reusable-pytest.yml@v0.8.3
with:
local_package_name: hyp3_plugin # Required; package to produce a coverage report for
fail_fast: false # Optional; default shown
Expand Down Expand Up @@ -309,7 +358,7 @@ on:
jobs:
call-release-workflow:
uses: ASFHyP3/actions/.github/workflows/reusable-release.yml@v0.8.2
uses: ASFHyP3/actions/.github/workflows/reusable-release.yml@v0.8.3
with:
release_prefix: HyP3-CI
release_branch: main # Optional; default shown
Expand Down Expand Up @@ -338,7 +387,7 @@ on:
jobs:
call-release-checklist-workflow:
uses: ASFHyP3/actions/.github/workflows/reusable-release-checklist-comment.yml@v0.8.2
uses: ASFHyP3/actions/.github/workflows/reusable-release-checklist-comment.yml@v0.8.3
permissions:
pull-requests: write
with:
Expand Down Expand Up @@ -367,7 +416,7 @@ on: push
jobs:
call-secrets-analysis-workflow:
uses: ASFHyP3/actions/.github/workflows/reusable-secrets-analysis.yml@v0.8.2
uses: ASFHyP3/actions/.github/workflows/reusable-secrets-analysis.yml@v0.8.3
```
to scan every push for secrets.

Expand All @@ -393,7 +442,7 @@ on:
jobs:
call-version-info-workflow:
uses: ASFHyP3/actions/.github/workflows/reusable-version-info.yml@v0.8.2
uses: ASFHyP3/actions/.github/workflows/reusable-version-info.yml@v0.8.3
with:
python_version: '3.9' # Optional; default shown
Expand Down

0 comments on commit 1162721

Please sign in to comment.