From 0e566d90424d4e1c0d3fab17b325cb06a0b6435a Mon Sep 17 00:00:00 2001 From: Corban-Lee Jones Date: Fri, 6 Dec 2024 09:44:38 +0000 Subject: [PATCH] Versioning and docker builds --- .bump2version.cfg | 4 ++ .dockerignore | 8 ++++ .gitea/workflows/docker-build.yaml | 59 ++++++++++++++++++++++++++++++ CHANGELOG.md | 16 ++++++++ Dockerfile | 16 ++++++++ requirements.txt | 1 + 6 files changed, 104 insertions(+) create mode 100644 .bump2version.cfg create mode 100644 .dockerignore create mode 100644 .gitea/workflows/docker-build.yaml create mode 100644 CHANGELOG.md create mode 100644 Dockerfile diff --git a/.bump2version.cfg b/.bump2version.cfg new file mode 100644 index 0000000..0dc9224 --- /dev/null +++ b/.bump2version.cfg @@ -0,0 +1,4 @@ +[bumpversion] +current_version = 0.0.0 +commit = True +tag = True diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..c251ba6 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,8 @@ +.gitignore +.env +venv/ +logs/ +__pycache__/ +*.pyc +.gitea/ +.vscode/ \ No newline at end of file diff --git a/.gitea/workflows/docker-build.yaml b/.gitea/workflows/docker-build.yaml new file mode 100644 index 0000000..ed478f4 --- /dev/null +++ b/.gitea/workflows/docker-build.yaml @@ -0,0 +1,59 @@ +name: Build and Push Docker Image +run-name: ${{ gitea.actor }} is building and pushing a Docker Image + +on: + push: + branches: + - master + - staging + - dev + pull_request: + branches: + - master + - staging + - dev + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Install bump2version + run: pip install bump2version + + - name: Get current version from bump2version + id: version + run: echo "VERSION=$(bump2version --dry-run --list patch | grep current_version | sed -r s,"^.*=",,)" >> $GITHUB_ENV + + - name: Set Docker tag based on branch + id: tag + run: | + # master branch uses specific version tagging, others use the branch name + if [[ "${{ gitea.ref_name }}" == "master" ]]; then + TAG="${{ env.VERSION }}" + else + TAG="${{ gitea.ref_name }}" + fi + echo "TAG=$TAG" >> $GITHUB_ENV + + - name: Build Docker image + run: | + docker build -t Spiffo:${{ env.TAG }} . + + - name: Login to Docker registry + run: echo ${{ secrets.DOCKER_TOKEN }} | docker login -u ${{ secrets.DOCKER_USERNAME }} --password-stdin + + - name: Tag & Push Docker image + run: | + # Push the branch-specific or version-specific tag + docker tag Spiffo:${{ env.TAG }} xordk/Spiffo:${{ env.TAG }} + docker push xordk/Spiffo:${{ env.TAG }} + + # If on master, push an additional "latest" tag + if [[ "${{ gitea.ref_name }}" == "master" ]]; then + docker tag Spiffo:${{ env.TAG }} xordk/Spiffo:latest + docker push xordk/Spiffo:latest + fi diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..ab086d5 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,16 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +### Added + +### Fixed + +### Changed + +### Removed diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..f0e2f8b --- /dev/null +++ b/Dockerfile @@ -0,0 +1,16 @@ +FROM python:3.12.5-slim-bullseye + +# python related environment variables +ENV PYTHONDONTWRITEBYTECODE 1 +ENV PYTHONUNBUFFERED 1 + +WORKDIR /app + +# install python dependencies +COPY requirements.txt /app/ +RUN pip install --upgrade pip +RUN pip install --no-cache-dir -r requirements.txt + +COPY . /app/ + +CMD ["python", "bot.py"] \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index d550e99..5e50184 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,6 +2,7 @@ aiohappyeyeballs==2.4.4 aiohttp==3.11.9 aiosignal==1.3.1 attrs==24.2.0 +bump2version==1.0.1 discord.py==2.4.0 frozenlist==1.5.0 idna==3.10