Compare commits

...

2 Commits

Author SHA1 Message Date
e0b0c3caeb add minimal install step to workflow 2022-09-17 14:52:08 +03:00
61969dd682 make sqlite import consistent 2022-09-17 14:32:21 +03:00
3 changed files with 37 additions and 15 deletions

View File

@ -7,6 +7,22 @@ on:
branches: [ master ] branches: [ master ]
jobs: jobs:
run-setup-minimal:
runs-on: ubuntu-latest
container:
image: archlinux:latest
volumes:
- ${{ github.workspace }}:/build
options: --privileged -w /build
steps:
- uses: actions/checkout@v2
- name: setup the minimal service in arch linux container
run: .github/workflows/setup.sh minimal
run-setup: run-setup:
runs-on: ubuntu-latest runs-on: ubuntu-latest

View File

@ -3,6 +3,8 @@
set -ex set -ex
[[ $1 = "minimal" ]] && MINIMAL_INSTALL=1
# install dependencies # install dependencies
echo -e '[arcanisrepo]\nServer = http://repo.arcanis.me/$arch\nSigLevel = Never' | tee -a /etc/pacman.conf echo -e '[arcanisrepo]\nServer = http://repo.arcanis.me/$arch\nSigLevel = Never' | tee -a /etc/pacman.conf
# refresh the image # refresh the image
@ -12,12 +14,14 @@ pacman --noconfirm -Sy base-devel devtools git pyalpm python-aur python-passlib
# make dependencies # make dependencies
pacman --noconfirm -Sy python-build python-installer python-wheel pacman --noconfirm -Sy python-build python-installer python-wheel
# optional dependencies # optional dependencies
# VCS support if [[ -z $MINIMAL_INSTALL ]]; then
pacman --noconfirm -Sy breezy darcs mercurial subversion # VCS support
# web server pacman --noconfirm -Sy breezy darcs mercurial subversion
pacman --noconfirm -Sy python-aioauth-client python-aiohttp python-aiohttp-debugtoolbar python-aiohttp-jinja2 python-aiohttp-security python-aiohttp-session python-cryptography python-jinja # web server
# additional features pacman --noconfirm -Sy python-aioauth-client python-aiohttp python-aiohttp-debugtoolbar python-aiohttp-jinja2 python-aiohttp-security python-aiohttp-session python-cryptography python-jinja
pacman --noconfirm -Sy gnupg python-boto3 rsync # additional features
pacman --noconfirm -Sy gnupg python-boto3 rsync
fi
# create fresh tarball # create fresh tarball
make VERSION=1.0.0 archlinux # well, it does not really matter which version we will put here make VERSION=1.0.0 archlinux # well, it does not really matter which version we will put here
@ -33,14 +37,17 @@ systemd-machine-id-setup
# special thing for the container, because /dev/log interface is not available there # special thing for the container, because /dev/log interface is not available there
sed -i "s/handlers = syslog_handler/handlers = console_handler/g" /etc/ahriman.ini.d/logging.ini sed -i "s/handlers = syslog_handler/handlers = console_handler/g" /etc/ahriman.ini.d/logging.ini
# initial setup command as root # initial setup command as root
ahriman -a x86_64 repo-setup --packager "ahriman bot <ahriman@example.com>" --repository "github" --web-port 8080 [[ -z $MINIMAL_INSTALL ]] && WEB_ARGS=("--web-port" "8080")
ahriman -a x86_64 repo-setup --packager "ahriman bot <ahriman@example.com>" --repository "github" "${WEB_ARGS[@]}"
# enable services # enable services
systemctl enable ahriman-web@x86_64 systemctl enable ahriman-web@x86_64
systemctl enable ahriman@x86_64.timer systemctl enable ahriman@x86_64.timer
# run web service (detached) if [[ -z $MINIMAL_INSTALL ]]; then
sudo -u ahriman -- ahriman -a x86_64 web & # run web service (detached)
WEBPID=$! sudo -u ahriman -- ahriman -a x86_64 web &
sleep 15s # wait for the web service activation WEB_PID=$!
sleep 15s # wait for the web service activation
fi
# add the first package # add the first package
# the build itself does not really work in the container # the build itself does not really work in the container
sudo -u ahriman -- ahriman package-add --now yay sudo -u ahriman -- ahriman package-add --now yay
@ -49,4 +56,4 @@ sudo -u ahriman -- ahriman package-add --now yay
# run package check # run package check
sudo -u ahriman -- ahriman repo-update sudo -u ahriman -- ahriman repo-update
# stop web service lol # stop web service lol
kill $WEBPID [[ -z $WEB_PID ]] || kill $WEB_PID

View File

@ -20,7 +20,6 @@
import sqlite3 import sqlite3
from pathlib import Path from pathlib import Path
from sqlite3 import Connection, Cursor
from typing import Any, Dict, Tuple, TypeVar, Callable from typing import Any, Dict, Tuple, TypeVar, Callable
from ahriman.core.lazy_logging import LazyLogging from ahriman.core.lazy_logging import LazyLogging
@ -46,7 +45,7 @@ class Operations(LazyLogging):
self.path = path self.path = path
@staticmethod @staticmethod
def factory(cursor: Cursor, row: Tuple[Any, ...]) -> Dict[str, Any]: def factory(cursor: sqlite3.Cursor, row: Tuple[Any, ...]) -> Dict[str, Any]:
""" """
dictionary factory based on official documentation dictionary factory based on official documentation
@ -62,7 +61,7 @@ class Operations(LazyLogging):
result[column[0]] = row[index] result[column[0]] = row[index]
return result return result
def with_connection(self, query: Callable[[Connection], T], commit: bool = False) -> T: def with_connection(self, query: Callable[[sqlite3.Connection], T], commit: bool = False) -> T:
""" """
perform operation in connection perform operation in connection