💚(repo) fix CI and general cleanup (#12)
This commit is contained in:
91
.github/workflows/calendars.yml
vendored
91
.github/workflows/calendars.yml
vendored
@@ -9,31 +9,6 @@ on:
|
||||
- "*"
|
||||
|
||||
jobs:
|
||||
lint-git:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.event_name == 'pull_request' # Makes sense only for pull requests
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: show
|
||||
run: git log
|
||||
- name: Enforce absence of print statements in code
|
||||
if: always()
|
||||
run: |
|
||||
! git diff origin/${{ github.event.pull_request.base.ref }}..HEAD -- . ':(exclude)**/calendars.yml' | grep "print("
|
||||
- name: Check absence of fixup commits
|
||||
if: always()
|
||||
run: |
|
||||
! git log | grep 'fixup!'
|
||||
- name: Install gitlint
|
||||
if: always()
|
||||
run: pip install --user requests gitlint
|
||||
- name: Lint commit messages added to main
|
||||
if: always()
|
||||
run: ~/.local/bin/gitlint --commits origin/${{ github.event.pull_request.base.ref }}..HEAD
|
||||
|
||||
check-changelog:
|
||||
runs-on: ubuntu-latest
|
||||
if: |
|
||||
@@ -76,7 +51,7 @@ jobs:
|
||||
uses: astral-sh/setup-uv@v6
|
||||
- name: Install the project
|
||||
run: uv sync --locked --all-extras
|
||||
|
||||
|
||||
- name: Check code formatting with ruff
|
||||
run: uv run ruff format . --diff
|
||||
- name: Lint code with ruff
|
||||
@@ -86,7 +61,6 @@ jobs:
|
||||
|
||||
test-back:
|
||||
runs-on: ubuntu-latest
|
||||
needs: build-mails
|
||||
|
||||
defaults:
|
||||
run:
|
||||
@@ -101,7 +75,6 @@ jobs:
|
||||
POSTGRES_PASSWORD: pass
|
||||
ports:
|
||||
- 5432:5432
|
||||
# needed because the postgres container does not provide a healthcheck
|
||||
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
|
||||
|
||||
env:
|
||||
@@ -115,11 +88,11 @@ jobs:
|
||||
DB_USER: pgroot
|
||||
DB_PASSWORD: pass
|
||||
DB_PORT: 5432
|
||||
STORAGES_STATICFILES_BACKEND: django.contrib.staticfiles.storage.StaticFilesStorage
|
||||
AWS_S3_ENDPOINT_URL: http://localhost:9000
|
||||
AWS_S3_ACCESS_KEY_ID: calendar
|
||||
AWS_S3_SECRET_ACCESS_KEY: password
|
||||
MEDIA_BASE_URL: http://localhost:8083
|
||||
CALDAV_URL: http://localhost:80
|
||||
CALDAV_OUTBOUND_API_KEY: test-outbound-key
|
||||
CALDAV_INBOUND_API_KEY: test-inbound-key
|
||||
CALDAV_CALLBACK_HOST: localhost
|
||||
TRANSLATIONS_JSON_PATH: ${{ github.workspace }}/src/frontend/apps/calendars/src/features/i18n/translations.json
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
@@ -130,40 +103,27 @@ jobs:
|
||||
sudo mkdir -p /data/media && \
|
||||
sudo mkdir -p /data/static
|
||||
|
||||
- name: Restore the mail templates
|
||||
uses: actions/cache@v5
|
||||
id: mail-templates
|
||||
with:
|
||||
path: "src/backend/core/templates/mail"
|
||||
key: mail-templates-${{ hashFiles('src/mail/mjml') }}
|
||||
|
||||
- name: Start MinIO
|
||||
- name: Build and start CalDAV server
|
||||
working-directory: .
|
||||
run: |
|
||||
docker pull minio/minio
|
||||
docker run -d --name minio \
|
||||
-p 9000:9000 \
|
||||
-e "MINIO_ACCESS_KEY=calendar" \
|
||||
-e "MINIO_SECRET_KEY=password" \
|
||||
-v /data/media:/data \
|
||||
minio/minio server --console-address :9001 /data
|
||||
docker build -t caldav-test docker/sabredav
|
||||
docker run -d --name caldav-test \
|
||||
--network host \
|
||||
-e PGHOST=localhost \
|
||||
-e PGPORT=5432 \
|
||||
-e PGDATABASE=calendars \
|
||||
-e PGUSER=pgroot \
|
||||
-e PGPASSWORD=pass \
|
||||
-e CALDAV_BASE_URI=/api/v1.0/caldav/ \
|
||||
-e CALDAV_INBOUND_API_KEY=test-inbound-key \
|
||||
-e CALDAV_OUTBOUND_API_KEY=test-outbound-key \
|
||||
caldav-test \
|
||||
sh -c "/usr/local/bin/init-database.sh && apache2-foreground"
|
||||
|
||||
# Tool to wait for a service to be ready
|
||||
- name: Install Dockerize
|
||||
- name: Wait for CalDAV to be ready
|
||||
run: |
|
||||
curl -sSL https://github.com/jwilder/dockerize/releases/download/v0.8.0/dockerize-linux-amd64-v0.8.0.tar.gz | sudo tar -C /usr/local/bin -xzv
|
||||
|
||||
- name: Wait for MinIO to be ready
|
||||
run: |
|
||||
dockerize -wait tcp://localhost:9000 -timeout 10s
|
||||
|
||||
- name: Configure MinIO
|
||||
run: |
|
||||
MINIO=$(docker ps | grep minio/minio | sed -E 's/.*\s+([a-zA-Z0-9_-]+)$/\1/')
|
||||
docker exec ${MINIO} sh -c \
|
||||
"mc alias set calendar http://localhost:9000 calendar password && \
|
||||
mc alias ls && \
|
||||
mc mb calendar/calendar-media-storage && \
|
||||
mc version enable calendar/calendar-media-storage"
|
||||
timeout 30 bash -c 'until curl -s -o /dev/null http://localhost:80/; do sleep 1; done'
|
||||
echo "CalDAV server is ready"
|
||||
|
||||
- name: "Set up Python"
|
||||
uses: actions/setup-python@v6
|
||||
@@ -177,8 +137,7 @@ jobs:
|
||||
- name: Install gettext (required to compile messages) and MIME support
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y gettext pandoc shared-mime-info
|
||||
sudo wget https://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types -O /etc/mime.types
|
||||
sudo apt-get install -y gettext pandoc shared-mime-info media-types
|
||||
|
||||
- name: Generate a MO file from strings extracted from the project
|
||||
run: uv run python manage.py compilemessages
|
||||
|
||||
Reference in New Issue
Block a user