Compare commits

..

2 Commits

Author SHA1 Message Date
aa76ba5650 .gitlab-ci.yml improvements 2022-12-29 07:32:12 +01:00
7abfb96841 README.md - added archlinux section 2022-12-29 07:17:51 +01:00
2 changed files with 43 additions and 10 deletions

View File

@ -16,9 +16,14 @@ build:docker:
- docker push ${CI_REGISTRY}/${CI_PROJECT_PATH}/${CI_BUILD_REF_NAME}:${CI_BUILD_REF} - docker push ${CI_REGISTRY}/${CI_PROJECT_PATH}/${CI_BUILD_REF_NAME}:${CI_BUILD_REF}
build:apt: build:apt:
image: debian:bookworm-slim # just to get "python3-jose" working image: debian:bookworm-slim
interruptible: true
stage: build stage: build
rules:
- if: $CI_COMMIT_BRANCH
before_script: before_script:
- echo "COMMIT=${CI_COMMIT_SHA}" >> version.env
# install build dependencies
- apt-get update -qq && apt-get install -qq -y build-essential - apt-get update -qq && apt-get install -qq -y build-essential
# create build directory for .deb sources # create build directory for .deb sources
- mkdir build - mkdir build
@ -43,10 +48,15 @@ build:apt:
build:pacman: build:pacman:
image: archlinux:base-devel image: archlinux:base-devel
interruptible: true
stage: build stage: build
rules:
- if: $CI_COMMIT_BRANCH
before_script: before_script:
- echo "COMMIT=${CI_COMMIT_SHA}" >> version.env
# install build dependencies
- pacman -Syu --noconfirm git - pacman -Syu --noconfirm git
# "makepkg" don't likes root user # create a build-user because "makepkg" don't like root user
- useradd --no-create-home --shell=/bin/false build && usermod -L build - useradd --no-create-home --shell=/bin/false build && usermod -L build
- 'echo "build ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers' - 'echo "build ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers'
- 'echo "root ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers' - 'echo "root ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers'
@ -67,6 +77,9 @@ build:pacman:
test: test:
image: python:3.10-slim-bullseye image: python:3.10-slim-bullseye
stage: test stage: test
rules:
- if: $CI_COMMIT_BRANCH
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
variables: variables:
DATABASE: sqlite:///../app/db.sqlite DATABASE: sqlite:///../app/db.sqlite
before_script: before_script:
@ -87,13 +100,14 @@ test:
variables: variables:
DEBIAN_FRONTEND: noninteractive DEBIAN_FRONTEND: noninteractive
before_script: before_script:
- apt-get update -qq && apt-get install -qq -y jq - apt-get update -qq && apt-get install -qq -y jq curl
script: script:
# test installation # test installation
- apt-get install -q -y ./build/build.deb --fix-missing - apt-get install -q -y ./build/build.deb --fix-missing
# copy example config from GitLab-CI-Variables # copy example config from GitLab-CI-Variables
#- cat ${EXAMPLE_CONFIG} > /etc/fastapi-dls/env #- cat ${EXAMPLE_CONFIG} > /etc/fastapi-dls/env
# start service in background # start service in background
- cd /usr/share/fastapi-dls/app
- uvicorn --host 127.0.0.1 --port 443 - uvicorn --host 127.0.0.1 --port 443
--app-dir /usr/share/fastapi-dls/app --app-dir /usr/share/fastapi-dls/app
--ssl-keyfile /etc/fastapi-dls/webserver.key --ssl-keyfile /etc/fastapi-dls/webserver.key
@ -118,8 +132,12 @@ test:ubuntu:
test:archlinux: test:archlinux:
image: archlinux:base image: archlinux:base
needs:
- job: build:pacman
artifacts: true
script: script:
- echo "Todo" - pacman -Sy
- pacman -U --noconfirm fastapi-dls-*.pkg.tar.zs
deploy:docker: deploy:docker:
stage: deploy stage: deploy
@ -152,7 +170,7 @@ deploy:apt:
image: debian:bookworm-slim image: debian:bookworm-slim
stage: deploy stage: deploy
rules: rules:
#- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
- changes: - changes:
- .DEBIAN/**/* - .DEBIAN/**/*
- app/**/* - app/**/*
@ -194,8 +212,8 @@ deploy:apt:
deploy:pacman: deploy:pacman:
image: archlinux:base-devel image: archlinux:base-devel
stage: deploy stage: deploy
# rules: rules:
# - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
# - changes: # - changes:
# - .PKGBUILD/**/* # - .PKGBUILD/**/*
# - app/**/* # - app/**/*

View File

@ -217,6 +217,21 @@ apt-get install -f --fix-missing
Start with `systemctl start fastapi-dls.service` and enable autostart with `systemctl enable fastapi-dls.service`. Start with `systemctl start fastapi-dls.service` and enable autostart with `systemctl enable fastapi-dls.service`.
## ArchLinux (using `pacman`)
Packages are available here:
- [GitLab-Registry](https://git.collinwebdesigns.de/oscar.krause/fastapi-dls/-/packages)
```shell
pacman -Sy
FILENAME=/opt/fastapi-dls.pkg.tar.zst
url -o $FILENAME <download-url>
pacman -U --noconfirm fastapi-dls.pkg.tar.zst
```
Start with `systemctl start fastapi-dls.service` and enable autostart with `systemctl enable fastapi-dls.service`.
## Let's Encrypt Certificate ## Let's Encrypt Certificate
If you're using installation via docker, you can use `traefik`. Please refer to their documentation. If you're using installation via docker, you can use `traefik`. Please refer to their documentation.