chore: update naming convention and version number when submodules have been updated

This commit is contained in:
Xyphuz 2024-04-28 03:36:27 +08:00
parent 49e3f14191
commit 95c315b82d
5 changed files with 132 additions and 71 deletions

View file

@ -1,39 +1,66 @@
name: Update Submodules name: Update Submodules
on: on:
push:
branches: [ dev ]
schedule: schedule:
- cron: '0 0 * * *' - cron: '0 0 * * *'
jobs: jobs:
update_submodules: check_submodules:
name: Update Submodules name: Check Submodules
runs-on: ubuntu-latest runs-on: ubuntu-latest
outputs:
has_changes: ${{ steps.check.outputs.has_changes }}
steps: steps:
- name: Checkout Code - name: Checkout Code
uses: actions/checkout@v3 uses: actions/checkout@v3
- name: Create new branch and push changes
run: |
git submodule update --remote
- name: Check for changes
id: check
run: |
git diff --quiet || echo "::set-output name=has_changes::true"
update_submodules:
name: Update Submodules
runs-on: ubuntu-latest
needs: [check_submodules]
if: needs.check_submodules.outputs.has_changes == 'true'
steps:
- name: Setup Python 3.10.4 - name: Setup Python 3.10.4
uses: actions/setup-python@v3 uses: actions/setup-python@v3
with: with:
python-version: '3.10.4' python-version: '3.10.4'
- name: Changing naming convention - name: Setup Poetry
run: | uses: abatilo/actions-poetry@v3
python3 naming.py with:
poetry-version: 1.8.2
- name: Create new branch and push changes - name: Install Dependencies
run: | run: |
git config user.name github-actions poetry install --no-root
git config user.email github-actions@github.com
git submodule update --remote
- name: Changing naming convention - name: Update Submodule
run: | run: |
python3 naming.py datamodel-codegen --input ./compose-spec/schema/compose-spec.json --output-model-type pydantic_v2.BaseModel --field-constraints --output ./compose_viz/spec/compose_spec.py
git checkout -b $GITHUB_RUN_ID poetry run python ./update-submodules.py
- name: Execute pre-commit
continue-on-error: true
run: |
poetry run python -m pre_commit run --all-files
- name: Push changes - name: Push changes
run: | run: |
git config user.name github-actions
git config user.email github-actions@github.com
git checkout -b $GITHUB_RUN_ID
git commit -am "chore: update submodules" git commit -am "chore: update submodules"
git push --set-upstream origin $GITHUB_RUN_ID git push --set-upstream origin $GITHUB_RUN_ID
@ -48,5 +75,5 @@ jobs:
head: process.env.GITHUB_RUN_ID, head: process.env.GITHUB_RUN_ID,
base: 'main', base: 'main',
title: `chore: update submodules (${process.env.GITHUB_RUN_ID})`, title: `chore: update submodules (${process.env.GITHUB_RUN_ID})`,
body: `chore: update submodules (${process.env.GITHUB_RUN_ID})`, body: `Please add the version tag to trigger the release.`,
}); });

View file

@ -1,2 +1,2 @@
__app_name__ = "compose_viz" __app_name__ = "compose_viz"
__version__ = "0.3.2" __version__ = "0.3.2"

View file

@ -1,20 +0,0 @@
def revise_naming_convention():
name_mapping = {
"EnvFile1": "EnvFilePath",
"Volume1": "AdditionalVolumeOption",
"External": "ExternalVolumeNetwork",
"External1": "ExternalConfig",
}
with open("./compose_viz/spec/compose_spec.py", "r") as spec_file:
spec_content = spec_file.read()
for origin_name, new_name in name_mapping.items():
spec_content.replace(origin_name, new_name)
return
if __name__ == "__main__":
revise_naming_convention()
print("Revised naming convention successfully!")

View file

@ -1,36 +1,36 @@
[tool.poetry] [tool.poetry]
name = "compose-viz" name = "compose-viz"
version = "0.3.2" version = "0.3.2"
description = "A compose file visualization tool that supports compose-spec and allows you to gernerate graph in several formats." description = "A compose file visualization tool that supports compose-spec and allows you to gernerate graph in several formats."
authors = ["Xyphuz Wu <xyphuzwu@gmail.com>"] authors = ["Xyphuz Wu <xyphuzwu@gmail.com>"]
readme = "README.md" readme = "README.md"
license = "MIT" license = "MIT"
homepage = "https://github.com/compose-viz/compose-viz" homepage = "https://github.com/compose-viz/compose-viz"
repository = "https://github.com/compose-viz/compose-viz" repository = "https://github.com/compose-viz/compose-viz"
include = [ include = [
"LICENSE", "LICENSE",
] ]
[tool.poetry.dependencies] [tool.poetry.dependencies]
python = "^3.9" python = "^3.9"
typer = "^0.4.1" typer = "^0.4.1"
graphviz = "^0.20" graphviz = "^0.20"
pydantic-yaml = "^1.3.0" pydantic-yaml = "^1.3.0"
[tool.poetry.group.dev.dependencies] [tool.poetry.group.dev.dependencies]
pytest = "^8.1.2" pytest = "^8.1.2"
pre-commit = "^3.7.0" pre-commit = "^3.7.0"
coverage = "^7.5.0" coverage = "^7.5.0"
pytest-cov = "^5.0.0" pytest-cov = "^5.0.0"
datamodel-code-generator = "^0.25.6" datamodel-code-generator = "^0.25.6"
[build-system] [build-system]
requires = ["poetry-core>=1.0.0"] requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api" build-backend = "poetry.core.masonry.api"
[tool.poetry.scripts] [tool.poetry.scripts]
cpv = "compose_viz.cli:start_cli" cpv = "compose_viz.cli:start_cli"
[tool.coverage.run] [tool.coverage.run]
source = ["compose_viz"] source = ["compose_viz"]
omit = ["compose_viz/spec/*"] omit = ["compose_viz/spec/*"]

54
update-submodules.py Normal file
View file

@ -0,0 +1,54 @@
import re
def revise_naming_convention():
name_mapping = {
"EnvFile1": "EnvFilePath",
"Volume1": "AdditionalVolumeOption",
"External": "ExternalVolumeNetwork",
"External2": "ExternalConfig",
}
spec_content: str
with open("./compose_viz/spec/compose_spec.py", "r+") as spec_file:
spec_content: str = spec_file.read()
for origin_name, new_name in name_mapping.items():
spec_content = re.sub(rf"\b{origin_name}\b", new_name, spec_content)
spec_file.seek(0)
spec_file.write(spec_content)
print("Revised naming convention successfully!")
def update_version_number():
new_version_number: str
with open("./compose_viz/__init__.py", "r+") as init_file:
init_content: str = init_file.read()
version_number = init_content.split(" ")[-1].replace('"', "").strip()
major, minor, patch = version_number.split(".")
new_version_number = f"{major}.{minor}.{int(patch) + 1}"
init_file.seek(0)
init_file.write(
f"""__app_name__ = "compose_viz"
__version__ = "{new_version_number}"
"""
)
with open("./pyproject.toml", "r+") as pyproject_file:
pyproject_content: str = pyproject_file.read()
pyproject_content = pyproject_content.replace(version_number, new_version_number)
pyproject_file.seek(0)
pyproject_file.write(pyproject_content)
print(f"Version number updated to {new_version_number} successfully!")
if __name__ == "__main__":
revise_naming_convention()
update_version_number()