aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar ChrisJL <[email protected]>2022-09-18 13:50:49 +0100
committerGravatar GitHub <[email protected]>2022-09-18 13:50:49 +0100
commit030d15e3a0ae2ecc84ca368aa11ed5d81a3ee202 (patch)
treeb75a3b879b6c640325affece77ea850299709f6c
parentMerge pull request #125 from python-discord/dpy-2.0 (diff)
parentRemove 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.yaml13
-rw-r--r--.github/workflows/lint-test.yaml8
-rw-r--r--dev/Dockerfile12
-rw-r--r--dev/README.rst2
-rw-r--r--dev/bot/__main__.py2
-rw-r--r--docker-compose.yaml23
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: