diff --git a/.forgejo/workflows/sonarqube.yml b/.forgejo/workflows/build.yml similarity index 51% rename from .forgejo/workflows/sonarqube.yml rename to .forgejo/workflows/build.yml index 05bac5f..5789461 100644 --- a/.forgejo/workflows/sonarqube.yml +++ b/.forgejo/workflows/build.yml @@ -1,4 +1,4 @@ -name: SonarQube +name: Build on: push: @@ -6,6 +6,25 @@ on: - master jobs: + tests: + name: Tests + runs-on: docker + + container: + image: python:3.11-alpine + + steps: + - name: "Setup env" + run: | + apk add --no-cache git nodejs + pip install tox + + - name: "Get repo" + uses: actions/checkout@v4 + + - name: "Tests" + run: tox + sonarqube: name: SonarQube runs-on: docker @@ -36,3 +55,31 @@ jobs: env: SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }} + + deploy: + name: Deploy + runs-on: docker + + container: + image: python:3.11-alpine + + steps: + - name: "Setup env" + run: | + apk add --no-cache git nodejs + pip install build twine + + - name: "Get repo" + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: "Build" + run: python -m build + + - name: "Push" + uses: https://github.com/pypa/gh-action-pypi-publish@release/v1 + with: + user: "${{ env.GITHUB_ACTOR }}" + password: "${{ secrets.PACKAGE_TOKEN }}" + repository-url: "${{ env.GITHUB_SERVER_URL }}/api/packages/${{ env.GITHUB_REPOSITORY_OWNER }}/pypi" diff --git a/.gitignore b/.gitignore index 340d611..e8ff4c5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,11 @@ /.vscode /venv +/.venv /administrator/settings/local_settings.py __pycache__ /discord.log /*.db +/.tox +/.eggs/ +/*.egg-info/ +/build/ \ No newline at end of file diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..6c6aa7c --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +0.1.0 \ No newline at end of file diff --git a/administrator/modules/test/__init__.py b/administrator/modules/test/__init__.py index e807b01..7ac2779 100644 --- a/administrator/modules/test/__init__.py +++ b/administrator/modules/test/__init__.py @@ -5,7 +5,7 @@ from discord.ext.commands import Cog, Bot class Test(Cog): def __init__(self, bot: Bot) -> None: self.bot = bot - + @app_commands.command(name="ping") async def ping(self, interaction: Interaction) -> None: await interaction.response.send_message("Pong !", ephemeral=True) diff --git a/administrator/test/test_basic.py b/administrator/test/test_basic.py new file mode 100644 index 0000000..8028096 --- /dev/null +++ b/administrator/test/test_basic.py @@ -0,0 +1,2 @@ +def test_bypass(): + pass diff --git a/setup.py b/setup.py index 1a48e7e..e3cb0e2 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,14 @@ with open("LICENSE") as f: setup( name='administrator', - version='0.1.0', + setuptools_git_versioning={ + "enabled": True, + "version_file": "VERSION", + "count_commits_from_version_file": True, + "dev_template": "{tag}.dev{ccount}", + "dirty_template": "{tag}.{branch}{ccount}", + }, + setup_requires=["setuptools-git-versioning"], description='All purpose Discord bot', long_description=readme, author='Ethanell', diff --git a/tox.ini b/tox.ini new file mode 100644 index 0000000..cc75b5b --- /dev/null +++ b/tox.ini @@ -0,0 +1,15 @@ +[tox] +env_list = + py311 +minversion = 4.4.7 + +[testenv] +description = run the tests with pytest +package = wheel +wheel_build_env = .pkg +deps = + pytest>=6 + flake8 + -r requirements.txt +commands = + pytest {tty:--color=yes} {posargs} administrator