mirror of
https://github.com/sissbruecker/linkding.git
synced 2025-08-07 02:48:27 +02:00
Reorganize scripts and E2E tests
This commit is contained in:
8
scripts/build-docker.sh
Executable file
8
scripts/build-docker.sh
Executable file
@@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
version=$(<version.txt)
|
||||
|
||||
docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 \
|
||||
-t sissbruecker/linkding:latest \
|
||||
-t sissbruecker/linkding:$version \
|
||||
--push .
|
5
scripts/coverage.sh
Executable file
5
scripts/coverage.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
coverage erase
|
||||
coverage run manage.py test
|
||||
coverage report --sort=cover
|
49
scripts/generate-changelog.py
Executable file
49
scripts/generate-changelog.py
Executable file
@@ -0,0 +1,49 @@
|
||||
#!/usr/bin/env python3
|
||||
import requests
|
||||
from datetime import datetime
|
||||
|
||||
|
||||
def load_releases_page(page):
|
||||
url = f'https://api.github.com/repos/sissbruecker/linkding/releases?page={page}'
|
||||
return requests.get(url).json()
|
||||
|
||||
|
||||
def load_all_releases():
|
||||
load_next_page = True
|
||||
page = 1
|
||||
releases = []
|
||||
|
||||
while load_next_page:
|
||||
page_result = load_releases_page(page)
|
||||
releases = releases + page_result
|
||||
load_next_page = len(page_result) > 0
|
||||
page = page + 1
|
||||
|
||||
return releases
|
||||
|
||||
|
||||
def render_release_section(release):
|
||||
date = datetime.fromisoformat(release['published_at'].replace("Z", "+00:00"))
|
||||
formatted_date = date.strftime('%d/%m/%Y')
|
||||
section = f'## {release["name"]} ({formatted_date})\n\n'
|
||||
body = release['body']
|
||||
# increase heading for body content
|
||||
body = body.replace("## What's Changed", "### What's Changed")
|
||||
body = body.replace("## New Contributors", "### New Contributors")
|
||||
section += body.strip()
|
||||
return section
|
||||
|
||||
|
||||
def generate_change_log():
|
||||
releases = load_all_releases()
|
||||
|
||||
change_log = '# Changelog\n\n'
|
||||
sections = [render_release_section(release) for release in releases]
|
||||
body = '\n\n---\n\n'.join(sections)
|
||||
change_log = change_log + body
|
||||
|
||||
with open("CHANGELOG.md", "w") as file:
|
||||
file.write(change_log)
|
||||
|
||||
|
||||
generate_change_log()
|
10
scripts/run-docker.sh
Executable file
10
scripts/run-docker.sh
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
docker build -t sissbruecker/linkding:local .
|
||||
|
||||
docker rm -f linkding-local || true
|
||||
|
||||
docker run --name linkding-local --rm -p 9090:9090 \
|
||||
-e LD_SUPERUSER_NAME=admin \
|
||||
-e LD_SUPERUSER_PASSWORD=admin \
|
||||
sissbruecker/linkding:local
|
14
scripts/test-e2e.sh
Executable file
14
scripts/test-e2e.sh
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Make sure Chromium is installed
|
||||
playwright install chromium
|
||||
|
||||
# Test server loads assets from static folder, so make sure files there are up-to-date
|
||||
rm -rf static
|
||||
npm run build
|
||||
python manage.py compilescss
|
||||
python manage.py collectstatic --ignore=*.scss
|
||||
python manage.py compilescss --delete-files
|
||||
|
||||
# Run E2E tests
|
||||
python manage.py test bookmarks.e2e --pattern="e2e_test_*.py"
|
29
scripts/test-postgres.sh
Executable file
29
scripts/test-postgres.sh
Executable file
@@ -0,0 +1,29 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
# Remove previous container if exists
|
||||
docker rm -f linkding-postgres-test || true
|
||||
|
||||
# Run postgres container
|
||||
docker run -d \
|
||||
-e POSTGRES_DB=linkding \
|
||||
-e POSTGRES_USER=linkding \
|
||||
-e POSTGRES_PASSWORD=linkding \
|
||||
-p 5432:5432 \
|
||||
--name linkding-postgres-test \
|
||||
postgres
|
||||
|
||||
# Wait until postgres has started
|
||||
echo >&2 "$(date +%Y%m%dt%H%M%S) Waiting for postgres container"
|
||||
sleep 15
|
||||
|
||||
# Run tests using postgres
|
||||
export LD_DB_ENGINE=postgres
|
||||
export LD_DB_USER=linkding
|
||||
export LD_DB_PASSWORD=linkding
|
||||
|
||||
./scripts/test.sh
|
||||
|
||||
# Remove postgres container
|
||||
docker rm -f linkding-postgres-test || true
|
1
scripts/test-unit.sh
Executable file
1
scripts/test-unit.sh
Executable file
@@ -0,0 +1 @@
|
||||
python manage.py test bookmarks.tests
|
2
scripts/test.sh
Executable file
2
scripts/test.sh
Executable file
@@ -0,0 +1,2 @@
|
||||
./scripts/test-unit.sh
|
||||
./scripts/test-e2e.sh
|
Reference in New Issue
Block a user