Skip to content

Commit

Permalink
upgrade ci (#27)
Browse files Browse the repository at this point in the history
* upgrade ci

* clean

* clean
  • Loading branch information
ysawa0 authored Nov 13, 2023
1 parent 96d0e47 commit c408ac3
Show file tree
Hide file tree
Showing 8 changed files with 400 additions and 86 deletions.
72 changes: 72 additions & 0 deletions .cpa/flake8.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
[flake8]
ignore =
# C901, # function is too complex. Ignored because max-complexity is set.
D100,
# Missing docstring in public module.
D101,
# Missing docstring in public class.
D102,
# Missing docstring in public method.
D103,
# Missing docstring in public function.
D104,
# Missing docstring in public package.
D105,
# Missing docstring in magic method.
D107,
# Missing docstring in __init__.
D205,
# 1 blank line required between summary line and description.
D400,
# First line should end with a period.
E203,
# whitespace before ':'. Conflicts with how Black formats slicing.
E231,
# missing whitespace after ',', ';', or ':'. Conflicts with Black.
E266,
# too many leading '#' for block comment.
E402,
# module level import not at top of file.
E501,
# line too long (82 > 79 characters). Ignored because max-line-length is set.
F841,
# local variable is assigned to but never used.
I100,
# Import statements are in the wrong order.
I201,
# Missing newline between import groups.
I202,
# Additional newline in a group of imports.
W503
# line break before binary operator. This is no longer PEP 8 compliant.

exclude =
.cache,
.coverage.*,
.env,
.git,
.github,
.gradle,
.hg,
.mypy_cache,
.pytest_cache,
.svn,
.tox,
.venv,
.vscode,
*__pycache__,
*.egg-info,
*.pyc,
build,
dist,
htmlcov.*,

# List of application-specific import names.
application-import-names = flake8
# Import statement format style.
import-order-style = google
# The maximum McCabe complexity allowed.
max-complexity = 18
# The maximum allowed line length.
max-line-length = 120
# per-file-ignores = # Per-file-ignores setting can be used to ignore specific errors in specific files.
7 changes: 7 additions & 0 deletions .cpa/prettier.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"bracketSpacing": true,
"singleQuote": false,
"useTabs": false,
"tabWidth": 2,
"trailingComma": "all"
}
88 changes: 61 additions & 27 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -1,52 +1,86 @@
name: CI

####################################
# Start the job on all push and PR #
####################################
on:
pull_request:
pull_request: # Start the job on all PRs
branches: [master, main]
types: [synchronize, opened, reopened, ready_for_review]
push:
push: # Start the job on all main branch push
branches: [master, main]

jobs:
precommits:
precommit:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v2
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v1
uses: actions/setup-python@v4
with:
python-version: 3.8
python-version: "3.10"

- name: Set shfmt version environment variable
run: echo "SHFMT_VERSION=v3.7.0" >> $GITHUB_ENV

- name: Cache pip dependencies
uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-
restore-keys: |
${{ runner.os }}-pip-
- name: Cache shfmt binary
uses: actions/cache@v3
with:
path: /usr/local/bin/shfmt
key: ${{ runner.os }}-shfmt-${{ env.SHFMT_VERSION }}
restore-keys: |
${{ runner.os }}-shfmt-${{ env.SHFMT_VERSION }}
${{ runner.os }}-shfmt-
- name: Cache Pre-Commit environments
uses: actions/cache@v3
with:
path: ~/.cache/pre-commit
key: ${{ runner.os }}-pc-${{ hashFiles('.pre-commit-config.yaml') }}
restore-keys: |
${{ runner.os }}-pc-${{ hashFiles('.pre-commit-config.yaml') }}
${{ runner.os }}-pc-
- name: Install dependencies
run: |
python -m pip install -r requirements-dev.txt
python -m pip install pre-commit
pre-commit install
- name: Install shfmt
run: |
SHFMT_VERSION=${{ env.SHFMT_VERSION }}
SHFMT_BIN="shfmt_${SHFMT_VERSION}_linux_amd64"
if [[ ! -f /usr/local/bin/shfmt ]]; then
wget -O shfmt "https://github.com/mvdan/sh/releases/download/${SHFMT_VERSION}/${SHFMT_BIN}"
chmod +x shfmt
sudo mv shfmt /usr/local/bin/
fi
sudo apt-get install shellcheck
- name: Run pre-commits
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
pre-commit run --all-files
REPO_NAME=$(echo $GITHUB_REPOSITORY | sed 's/^.*\///')
DEFAULT_BRANCH=$(curl -H "Authorization: token $GITHUB_TOKEN" \
"https://api.github.com/repos/$GITHUB_REPOSITORY" | jq -r '.default_branch')
lintyaml:
runs-on: ubuntu-latest # Set the agent to run on
git fetch
CUR_SHA=$(git log --pretty=tformat:"%H" -n1 . | tail -n1)
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
# Full git history is needed to get a proper list of changed files within `super-linter`
fetch-depth: 0
echo "Default branch is $DEFAULT_BRANCH"
echo "Current SHA is $CUR_SHA"
- name: Lint code
uses: docker://github/super-linter:v3.3.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
DEFAULT_BRANCH: main
VALIDATE_YAML: true
VALIDATE_ALL_CODEBASE: false
VALIDATE_PYTHON: false
if [[ $GITHUB_REF == "refs/heads/$DEFAULT_BRANCH" ]]; then
pre-commit run --all
else
pre-commit run --from-ref origin/$DEFAULT_BRANCH --to-ref $CUR_SHA
fi
106 changes: 87 additions & 19 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
##########################################################################################
# Python
# From: https://github.com/github/gitignore/blob/main/Python.gitignore
##########################################################################################
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
Expand All @@ -14,12 +18,13 @@ dist/
downloads/
eggs/
.eggs/
# lib/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
Expand All @@ -38,14 +43,17 @@ pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/

# Translations
*.mo
Expand All @@ -55,6 +63,7 @@ coverage.xml
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
Expand All @@ -67,16 +76,49 @@ instance/
docs/_build/

# PyBuilder
.pybuilder/
target/

# Jupyter Notebook
.ipynb_checkpoints

# pyenv
.python-version
# IPython
profile_default/
ipython_config.py

# celery beat schedule file
# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version

# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock

# poetry
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#poetry.lock

# pdm
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
#pdm.lock
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
# in version control.
# https://pdm.fming.dev/#use-with-ide
.pdm.toml

# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py
Expand All @@ -102,24 +144,50 @@ venv.bak/

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/

# pytype static type analyzer
.pytype/

# Cython debug symbols
cython_debug/

# PyCharm
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/

##########################################################################################
# Rust
# From: https://github.com/github/gitignore/blob/main/Rust.gitignore
##########################################################################################
# Generated by Cargo
# will have compiled files and executables
debug/
target/

.DS_Store
.idea

release.sh

.gitconfig
# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
Cargo.lock

**/config_load_check_tool
# These are backup files generated by rustfmt
**/*.rs.bk

**/tempCodeRunnerFile*
# MSVC Windows builds of rustc generate these, which store debugging information
*.pdb

**/.cache/
**/.serverless/
**/node_modules/

*/.coverage
**/htmlcov
##########################################################################################
# Misc
##########################################################################################
tmp*

backend/bin/
backend/lib/
.serverless
.vscode
backend/bin
Loading

0 comments on commit c408ac3

Please sign in to comment.