Skip to content

Commit

Permalink
Feat/check-v2 common packages under open cepk (#2)
Browse files Browse the repository at this point in the history
* feat/check-v initial version
  • Loading branch information
hminaee-tc authored Jul 3, 2024
1 parent 7adbb8f commit d1081e9
Show file tree
Hide file tree
Showing 44 changed files with 1,815 additions and 1 deletion.
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @opencepk/opencepk-admins
22 changes: 22 additions & 0 deletions .github/workflows/pre-commit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
name: pre-commit

on:
pull_request:

permissions: read-all

jobs:
pre-commit:
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v3
- name: setup-python
uses: actions/setup-python@v4
with:
python-version: '3.11'
# - name: install-dependencies
# run: pip install -r opencepk_lib_python_common/pypi_bumpversion_check_package/pypi_bumpversion_check/requirements.txt
- name: pre-commit-run
uses: pre-commit/action@v3.0.0
60 changes: 60 additions & 0 deletions .github/workflows/publish-to-pypi.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
---
name: publish-to-pypi

on:
workflow_run:
workflows: ["pre-commit"]
types:
- completed
push:
branches:
- main
pull_request:
branches:
- main

jobs:
build:
name: build-pip-package
runs-on: ubuntu-latest
permissions:
id-token: write

steps:
- uses: actions/checkout@v2

- name: Set up Python
uses: actions/setup-python@v5.1.0
with:
python-version: 3.11

- name: run pip install
run: |
pip3 install .
pip3 install ".[dep]"
build-n-publish:
needs: build
name: build-n-publish
runs-on: ubuntu-latest
permissions:
id-token: write

steps:
- uses: actions/checkout@v2

- name: Set up Python
uses: actions/setup-python@v5.1.0
with:
python-version: 3.11

- name: Install pip packages
run: pip install twine build setuptools

- name: Build the package
run: python -m build

- name: Publish package to PyPI
if: ${{ github.event_name == 'pull_request' && github.head_ref == '/refs/heads/main' && github.event.action == 'closed' && github.event.pull_request.merged == true }}
uses: pypa/gh-action-pypi-publish@release/v1
with:
skip-existing: true
93 changes: 93 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
---
name: tests

on:
push:
branches:
- main
pull_request:
branches:
- main

jobs:
# ----------------------
# JOB 1: Run unit tests
# ----------------------
tests-unit:
name: tests-unit
runs-on: ubuntu-latest
permissions:
id-token: write

steps:
- uses: actions/checkout@v2

- name: Set up Python
uses: actions/setup-python@v5.1.0
with:
python-version: 3.11

- name: Run tests
run: python3 -m unittest opencepk_lib_python_common.find_and_replace_strings_package.tests.test_main
# ----------------------
# JOB 2: Run python package end to end test
# ----------------------
test-package-e2e:
name: test-package-e2e
runs-on: ubuntu-latest
permissions:
id-token: write

steps:
- uses: actions/checkout@v2

- name: Set up Python
uses: actions/setup-python@v5.1.0
with:
python-version: 3.11

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install toml requests
- name: Run test-package-e2e.sh for find-replace-strings package
run: |
cd opencepk_lib_python_common/find_and_replace_strings_package/tests-package-e2e
./test-package-e2e.sh
- name: Run test-package-e2e.sh for check version package
run: |
cd opencepk_lib_python_common/pypi_bumpversion_check_package/tests-package-e2e
./test-package-e2e.sh
# ----------------------
# JOB 3: Run pre-commit hook test
# ----------------------
test-pre-commit-hook:
name: test-pre-commit-hook
runs-on: ubuntu-latest
permissions:
id-token: write

steps:
- uses: actions/checkout@v2

- name: Set up Python
uses: actions/setup-python@v5.1.0
with:
python-version: 3.11

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pre-commit
- name: Run test-pre-commit-hook.sh for find-replace-strings package
run: |
cd opencepk_lib_python_common/find_and_replace_strings_package/tests-pre-commit-hook
./test-pre-commit-hook.sh
- name: Run test-pre-commit-hook.sh for check version package
run: |
cd opencepk_lib_python_common/pypi_bumpversion_check_package/tests-pre-commit-hook
./test-pre-commit-hook.sh
10 changes: 9 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,11 +1,19 @@
# Byte-compiled / optimized / DLL files
__pycache__/
**/__pycache__/
*.py[cod]
*$py.class

.DS_Store
**/.DS_Store

**/precommit-e2e.test

# C extensions
*.so

**/*.egg-info

# Distribution / packaging
.Python
build/
Expand Down Expand Up @@ -85,7 +93,7 @@ ipython_config.py
# 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
.python-version

# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
Expand Down
104 changes: 104 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
---
repos:

- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.6.0
hooks:
- id: check-merge-conflict
- id: check-added-large-files
args: [--maxkb=500]
- id: trailing-whitespace
- id: detect-private-key
- id: end-of-file-fixer
- id: fix-encoding-pragma
- id: file-contents-sorter
- id: check-case-conflict
- id: mixed-line-ending
args: [--fix=lf]
# -----------------------------
# Checkov is a static code analysis tool for scanning infrastructure as code (IaC) files for misconfigurations
# that may lead to security or compliance problems.
# -----------------------------
# Checkov includes more than 750 predefined policies to check for common misconfiguration issues.
# Checkov also supports the creation and contribution of custom policies.
# -----------------------------
- repo: https://github.com/bridgecrewio/checkov.git
rev: 3.2.171
hooks:
- id: checkov
# -----------------------------
# Gitleaks SAST tool for detecting and preventing hardcoded secrets like passwords, api keys, and tokens in git repos
# -----------------------------
# If you are knowingly committing something that is not a secret and gitleaks is catching it,
# you can add an inline comment of '# gitleaks:allow' to the end of that line in your file.
# This will instructs gitleaks to ignore that secret - example:
# some_non_secret_value = a1b2c3d4e5f6g7h8i9j0 # gitleaks:allow
# -----------------------------
- repo: https://github.com/gitleaks/gitleaks
rev: v8.18.4
hooks:
- id: gitleaks
# -----------------------------
# # Generates Table of Contents in Markdown files
# # -----------------------------
- repo: https://github.com/frnmst/md-toc
rev: 9.0.0
hooks:
- id: md-toc
args: [-p, github] # CLI options
# -----------------------------
# YAML Linting on yaml files for pre-commit and github actions
# -----------------------------
- repo: https://github.com/adrienverge/yamllint
rev: v1.35.1
hooks:
- id: yamllint
name: Check YAML syntax with yamllint
args: [--strict, -c=.yamllint.yaml, '.']
always_run: true
pass_filenames: true

# -----------------------------
# PYPI bumpversion check
# -----------------------------
# - repo: local
# hooks:
# - id: install-pypi_bumpversion_check-requirements
# name: Install PYPI bumpversion check requirements
# entry: sh -c 'pip3 install -r ./opencepk_lib_python_common/pypi_bumpversion_check_package/pypi_bumpversion_check/requirements.txt && exit 0'
# language: system
# always_run: true

# -----------------------------
# PYPI bumpversion check
# -----------------------------
- repo: local
hooks:
- id: pypi_bumpversion_check
name: Check version
args: ['./pyproject.toml']
entry: python3 -m opencepk_lib_python_common.pypi_bumpversion_check_package.pypi_bumpversion_check
language: python
pass_filenames: false # Do not pass filenames to the hook (this is important to keep)
additional_dependencies:
- toml
- requests


- repo: local
hooks:
- id: unittest
name: Run unit tests
entry: python3 -m unittest opencepk_lib_python_common.find_and_replace_strings_package.tests.test_main
language: system
pass_filenames: false
always_run: true

- repo: local
hooks:
- id: toml build
name: test the .toml package health
entry: pip3 install .
language: system
pass_filenames: false
always_run: true
17 changes: 17 additions & 0 deletions .pre-commit-hooks.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
- id: python-pypi-version-check
name: python-pypi-version-check
description: Check if Python package already exists on PYPI.
# entry: hooks/pypi_bumpversion_check-check
entry: python-pypi-version-check
language: python

- id: find-and-replace-strings
name: find-and-replace-strings
description: Check if Python package already exists on PYPI.
entry: find-and-replace-strings
# entry: hooks/find_and_replace_strings
language: python


# python-pypi-version-check-test /Users/hamed/Desktop/tucows-code/find-and-replace-strings/pyproject.toml
35 changes: 35 additions & 0 deletions .yamllint.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
yaml-files:
- '*.yaml'
- '*.yml'
- '.yamllint'

rules:
anchors: enable
braces: enable
brackets: enable
colons: enable
commas: enable
comments:
level: warning
comments-indentation:
level: warning
document-end: disable
document-start:
level: warning
empty-lines: enable
empty-values: disable
float-values: disable
hyphens: enable
indentation: enable
key-duplicates: enable
key-ordering: disable
# line-length:
# max: 150
# level: warning
new-line-at-end-of-file: enable
new-lines: enable
octal-values: disable
quoted-strings: disable
trailing-spaces: enable
truthy: disable
Loading

0 comments on commit d1081e9

Please sign in to comment.