diff options
author | 2022-09-18 13:50:49 +0100 | |
---|---|---|
committer | 2022-09-18 13:50:49 +0100 | |
commit | 030d15e3a0ae2ecc84ca368aa11ed5d81a3ee202 (patch) | |
tree | b75a3b879b6c640325affece77ea850299709f6c | |
parent | Merge pull request #125 from python-discord/dpy-2.0 (diff) | |
parent | Remove Unused Steps In CI (diff) |
Merge pull request #135 from python-discord/poetry-1.2.0
Bump poetry to 1.2.0 in CI & the example project
-rw-r--r-- | .github/workflows/docs.yaml | 13 | ||||
-rw-r--r-- | .github/workflows/lint-test.yaml | 8 | ||||
-rw-r--r-- | dev/Dockerfile | 12 | ||||
-rw-r--r-- | dev/README.rst | 2 | ||||
-rw-r--r-- | dev/bot/__main__.py | 2 | ||||
-rw-r--r-- | docker-compose.yaml | 23 |
6 files changed, 31 insertions, 29 deletions
diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index fad707c0..42c9e742 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -11,7 +11,6 @@ concurrency: group: docs-deployment-${{ github.ref }} cancel-in-progress: true - jobs: latest-build: # We only need to verify that the docs build with no warnings here @@ -22,16 +21,12 @@ jobs: - uses: actions/checkout@v2 - name: Install Python Dependencies - uses: HassanAbouelela/actions/setup-python@setup-python_v1.1.0 + uses: HassanAbouelela/actions/setup-python@setup-python_v1.3.1 with: dev: true python_version: "3.10" install_args: "--extras async-rediscache" - # Undeclared dependency for `releases`... whoops - # https://github.com/bitprophet/releases/pull/82 - - run: pip install six - - name: Generate HTML Site run: sphinx-build -nW -j auto -b html docs docs/build @@ -51,16 +46,12 @@ jobs: fetch-depth: 0 # We need to check out the entire repository to find all tags - name: Install Python Dependencies - uses: HassanAbouelela/actions/setup-python@setup-python_v1.1.0 + uses: HassanAbouelela/actions/setup-python@setup-python_v1.3.1 with: dev: true python_version: "3.10" install_args: "--extras async-rediscache" - # Undeclared dependency for `releases`... whoops - # https://github.com/bitprophet/releases/pull/82 - - run: pip install six - - name: Build All Doc Versions run: sphinx-multiversion docs docs/build -n -j auto env: diff --git a/.github/workflows/lint-test.yaml b/.github/workflows/lint-test.yaml index 5b8bd5a4..e9821677 100644 --- a/.github/workflows/lint-test.yaml +++ b/.github/workflows/lint-test.yaml @@ -14,10 +14,9 @@ jobs: lint: name: Run Linting & Test Suites runs-on: ubuntu-latest - steps: - name: Install Python Dependencies - uses: HassanAbouelela/actions/setup-python@setup-python_v1.1.0 + uses: HassanAbouelela/actions/setup-python@setup-python_v1.3.1 with: # Set dev=true to run pre-commit which is a dev dependency dev: true @@ -25,10 +24,9 @@ jobs: install_args: "--extras async-rediscache" # We will not run `flake8` here, as we will use a separate flake8 - # action. As pre-commit does not support user installs, we set - # PIP_USER=0 to not do a user install. + # action. - name: Run pre-commit hooks - run: export PIP_USER=0; SKIP=flake8 pre-commit run --all-files + run: SKIP=flake8 pre-commit run --all-files # Run flake8 and have it format the linting errors in the format of # the GitHub Workflow command to register error annotations. This diff --git a/dev/Dockerfile b/dev/Dockerfile index eaab04ba..0b35724a 100644 --- a/dev/Dockerfile +++ b/dev/Dockerfile @@ -1,20 +1,14 @@ -FROM python:3.10-slim +FROM --platform=linux/amd64 ghcr.io/chrislovering/python-poetry-base:3.10-slim -# Set pip to have no saved cache -ENV PIP_NO_CACHE_DIR=false \ - POETRY_VIRTUALENVS_CREATE=false - -# Install poetry -RUN pip install -U poetry - -WORKDIR /app # Install project dependencies +WORKDIR /app COPY pyproject.toml poetry.lock ./ RUN poetry install --no-root # Copy the source code in last to optimize rebuilding the image COPY . . + # Install again, this time with the root project RUN poetry install diff --git a/dev/README.rst b/dev/README.rst index afff6255..ae4f3adc 100644 --- a/dev/README.rst +++ b/dev/README.rst @@ -40,7 +40,7 @@ Option 2 3. Configure the environment variables used by the program. You can set them in an ``.env`` file in the project root directory. The variables are: - - ``TOKEN`` (required): Discord bot token, with all intents enabled + - ``BOT_TOKEN`` (required): Discord bot token, with all intents enabled - ``GUILD_ID`` (required): The guild the bot should monitor - ``PREFIX``: The prefix to use for invoking bot commands. Defaults to mentions and ``!`` - ``ALLOWED_ROLES``: A comma seperated list of role IDs which the bot is allowed to mention diff --git a/dev/bot/__main__.py b/dev/bot/__main__.py index 00ebdefc..42d212c2 100644 --- a/dev/bot/__main__.py +++ b/dev/bot/__main__.py @@ -29,6 +29,6 @@ async def main() -> None: """Run the bot.""" bot.http_session = aiohttp.ClientSession() async with bot: - await bot.start(os.getenv("TOKEN")) + await bot.start(os.getenv("BOT_TOKEN")) asyncio.run(main()) diff --git a/docker-compose.yaml b/docker-compose.yaml index 4b6468f1..af882428 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -19,6 +19,20 @@ services: timeout: 1s retries: 5 + metricity: + restart: on-failure + depends_on: + postgres: + condition: service_healthy + image: ghcr.io/python-discord/metricity:latest + env_file: + - .env + environment: + DATABASE_URI: postgres://pysite:pysite@postgres/metricity + USE_METRICITY: ${USE_METRICITY-false} + volumes: + - .:/tmp/bot:ro + redis: << : *restart_policy image: redis:5.0.9 @@ -46,15 +60,20 @@ services: METRICITY_DB_URL: postgres://pysite:pysite@postgres:5432/metricity SECRET_KEY: suitable-for-development-only STATIC_ROOT: /var/www/static + depends_on: + - metricity bot: << : *restart_policy build: context: . dockerfile: dev/Dockerfile - volumes: - - .:/app:ro + volumes: # Don't do .:/app here to ensure project venv from host doens't overwrite venv in image + - ./botcore:/app/botcore:ro + - ./bot:/app/bot:ro tty: true + depends_on: + - web env_file: - .env environment: |