From aff565862ca47a1000685e9e615bdcb83dc2bee4 Mon Sep 17 00:00:00 2001 From: Sonny Bakker Date: Thu, 26 Dec 2024 20:20:21 +0100 Subject: [PATCH] Add woodpecker CI configuration --- .gitlab-ci.yml | 29 ------------------- .woodpecker/build.yaml | 8 ++++++ .woodpecker/lint.yaml | 19 +++++++++++++ .woodpecker/tests.yaml | 36 ++++++++++++++++++++++++ gitlab-ci/build.yml | 7 ----- gitlab-ci/lint.yml | 25 ---------------- gitlab-ci/release.yml | 12 -------- gitlab-ci/test.yml | 20 ------------- src/newsreader/conf/{gitlab.py => ci.py} | 2 +- 9 files changed, 64 insertions(+), 94 deletions(-) delete mode 100644 .gitlab-ci.yml create mode 100644 .woodpecker/build.yaml create mode 100644 .woodpecker/lint.yaml create mode 100644 .woodpecker/tests.yaml delete mode 100644 gitlab-ci/build.yml delete mode 100644 gitlab-ci/lint.yml delete mode 100644 gitlab-ci/release.yml delete mode 100644 gitlab-ci/test.yml rename src/newsreader/conf/{gitlab.py => ci.py} (97%) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index bf64808..0000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,29 +0,0 @@ -stages: - - build - - test - - lint - - release - -variables: - UV_CACHE_DIR: "$CI_PROJECT_DIR/.cache/uv" - PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip" - DJANGO_SETTINGS_MODULE: "newsreader.conf.gitlab" - POSTGRES_HOST: "$POSTGRES_HOST" - POSTGRES_DB: "$POSTGRES_NAME" - POSTGRES_NAME: "$POSTGRES_NAME" - POSTGRES_USER: "$POSTGRES_USER" - POSTGRES_PASSWORD: "$POSTGRES_PASSWORD" - -cache: - key: "$CI_COMMIT_REF_SLUG" - paths: - - .cache/pip - - .cache/uv - - node_modules/ - - .venv/ - -include: - - local: '/gitlab-ci/build.yml' - - local: '/gitlab-ci/test.yml' - - local: '/gitlab-ci/lint.yml' - - local: '/gitlab-ci/release.yml' diff --git a/.woodpecker/build.yaml b/.woodpecker/build.yaml new file mode 100644 index 0000000..ba795b4 --- /dev/null +++ b/.woodpecker/build.yaml @@ -0,0 +1,8 @@ +when: + - event: push + +steps: + - image: node:lts + commands: + - npm install + - npm run build diff --git a/.woodpecker/lint.yaml b/.woodpecker/lint.yaml new file mode 100644 index 0000000..1bb119e --- /dev/null +++ b/.woodpecker/lint.yaml @@ -0,0 +1,19 @@ +when: + - event: push + branch: main + - event: pull_request + +steps: + - name: python linting + image: python:3.11 + commands: + - pip install uv + - uv sync --extra testing --extra ci + - ./.venv/bin/ruff check src/ + - ./.venv/bin/ruff format --check src/ + + - name: javascript linting + image: node:lts + commands: + - npm install + - npm run lint diff --git a/.woodpecker/tests.yaml b/.woodpecker/tests.yaml new file mode 100644 index 0000000..09649aa --- /dev/null +++ b/.woodpecker/tests.yaml @@ -0,0 +1,36 @@ +when: + - event: push + +services: + - name: postgres + image: postgres:15 + environment: + POSTGRES_NAME: newsreader + POSTGRES_USER: newsreader + POSTGRES_PASSWORD: sekrit + - name: memcached + image: memcached:1.5.22 + +steps: + - name: python tests + image: python:3.11 + environment: + DJANGO_SETTINGS_MODULE: "newsreader.conf.ci" + DJANGO_SECRET_KEY: sekrit + POSTGRES_HOST: postgres + POSTGRES_PORT: 5432 + POSTGRES_DB: newsreader + POSTGRES_NAME: newsreader + POSTGRES_USER: newsreader + POSTGRES_PASSWORD: sekrit + commands: + - pip install uv + - uv sync --extra testing --extra ci + - ./.venv/bin/coverage run ./src/manage.py test newsreader + - ./.venv/bin/coverage report --show-missing + + - name: javascript tests + image: node:lts + commands: + - npm install + - npm test diff --git a/gitlab-ci/build.yml b/gitlab-ci/build.yml deleted file mode 100644 index 5a86f07..0000000 --- a/gitlab-ci/build.yml +++ /dev/null @@ -1,7 +0,0 @@ -static: - stage: build - image: node:lts - before_script: - - npm install - script: - - npm run build diff --git a/gitlab-ci/lint.yml b/gitlab-ci/lint.yml deleted file mode 100644 index 6511f9a..0000000 --- a/gitlab-ci/lint.yml +++ /dev/null @@ -1,25 +0,0 @@ -python-linting: - stage: lint - image: python:3.11 - before_script: - - pip install uv - - uv sync --extra testing --extra ci - script: - - ./.venv/bin/ruff check src/ - - ./.venv/bin/ruff format --check src/ - only: - refs: - - main - - merge_requests - -javascript-linting: - stage: lint - image: node:lts - before_script: - - npm install - script: - - npm run lint - only: - refs: - - main - - merge_requests diff --git a/gitlab-ci/release.yml b/gitlab-ci/release.yml deleted file mode 100644 index 571be3c..0000000 --- a/gitlab-ci/release.yml +++ /dev/null @@ -1,12 +0,0 @@ -release: - stage: release - image: registry.gitlab.com/gitlab-org/release-cli:latest - rules: - - if: $CI_COMMIT_TAG - script: - - echo 'running release job' - release: - name: 'Release $CI_COMMIT_TAG' - description: './CHANGELOG.md' - tag_name: '$CI_COMMIT_TAG' - ref: '$CI_COMMIT_TAG' diff --git a/gitlab-ci/test.yml b/gitlab-ci/test.yml deleted file mode 100644 index 69bc93f..0000000 --- a/gitlab-ci/test.yml +++ /dev/null @@ -1,20 +0,0 @@ -python-tests: - stage: test - coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/' - services: - - postgres:15 - - memcached:1.5.22 - image: python:3.11 - before_script: - - pip install uv - - uv sync --extra testing --extra ci - script: - - ./.venv/bin/coverage run ./src/manage.py test newsreader - -javascript-tests: - stage: test - image: node:lts - before_script: - - npm install - script: - - npm test diff --git a/src/newsreader/conf/gitlab.py b/src/newsreader/conf/ci.py similarity index 97% rename from src/newsreader/conf/gitlab.py rename to src/newsreader/conf/ci.py index e08556d..40c4a2f 100644 --- a/src/newsreader/conf/gitlab.py +++ b/src/newsreader/conf/ci.py @@ -33,7 +33,7 @@ CACHES = { # Project settings VERSION = get_current_version() -ENVIRONMENT = "gitlab" +ENVIRONMENT = "ci" try: # Optionally use sentry integration