Build source package in paperlessng_directory

Avoids permission problems in /tmp
This commit is contained in:
Fabian Koller 2021-01-24 10:05:42 +01:00
parent be2013975c
commit 29ce2515ee
No known key found for this signature in database
GPG Key ID: 4EFE4C946404B82A
3 changed files with 101 additions and 80 deletions

View File

@ -45,7 +45,10 @@
register: logs register: logs
failed_when: "('Consuming ' + filename + '.txt') not in logs.content" failed_when: "('Consuming ' + filename + '.txt') not in logs.content"
# assumes txt consumption finished by now, might have to sleep a bit - name: sleep 5 seconds
pause:
seconds: 5
- name: verify uploaded document has been consumed - name: verify uploaded document has been consumed
uri: uri:
url: "http://{{ paperlessng_listen_address }}:{{ paperlessng_listen_port }}/api/logs/" url: "http://{{ paperlessng_listen_address }}:{{ paperlessng_listen_port }}/api/logs/"

View File

@ -1,5 +1,4 @@
--- ---
# https://github.com/jonaswinkler/paperless-ng/blob/dev/.github/workflows/ci.yml
- name: install dev dependencies - name: install dev dependencies
apt: apt:
pkg: pkg:
@ -7,19 +6,32 @@
- npm - npm
- gettext - gettext
- name: create temporary git directory - name: create output directories
file:
path: "{{ item }}"
state: directory
owner: "{{ paperlessng_system_user }}"
group: "{{ paperlessng_system_group }}"
mode: "750"
with_items:
- "{{ tempdir.path }}/paperless-ng"
- "{{ tempdir.path }}/paperless-ng/scripts"
- block:
- name: create temporary git directory
tempfile: tempfile:
state: directory state: directory
path: "{{ paperlessng_directory }}"
register: gitdir register: gitdir
- name: pull paperless-ng - name: pull paperless-ng
git: git:
repo: https://github.com/jonaswinkler/paperless-ng.git repo: https://github.com/jonaswinkler/paperless-ng.git
dest: "{{ gitdir.path }}" dest: "{{ gitdir.path }}"
version: "{{ paperlessng_version }}" version: "{{ paperlessng_version }}"
refspec: "+refs/pull/*:refs/pull/*" refspec: "+refs/pull/*:refs/pull/*"
- name: compile frontend - name: compile frontend
command: command:
cmd: "{{ item }}" cmd: "{{ item }}"
args: args:
@ -30,15 +42,7 @@
- npm install - npm install
- ./node_modules/.bin/ng build --prod - ./node_modules/.bin/ng build --prod
- name: create output directories - name: copy application into place
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ tempdir.path }}/paperless-ng"
- "{{ tempdir.path }}/paperless-ng/scripts"
- name: copy application into place
copy: copy:
src: "{{ gitdir.path }}/{{ item.src }}" src: "{{ gitdir.path }}/{{ item.src }}"
remote_src: yes remote_src: yes
@ -53,7 +57,7 @@
- src: paperless.conf.example - src: paperless.conf.example
dest: "paperless.conf" dest: "paperless.conf"
- name: glob all scripts - name: glob all scripts
find: find:
paths: ["{{ gitdir.path }}/scripts/"] paths: ["{{ gitdir.path }}/scripts/"]
patterns: patterns:
@ -61,7 +65,7 @@
- "*.sh" - "*.sh"
register: glob register: glob
- name: copy scripts - name: copy scripts
copy: copy:
src: "{{ item.path }}" src: "{{ item.path }}"
remote_src: yes remote_src: yes
@ -69,34 +73,39 @@
with_items: with_items:
- "{{ glob.files }}" - "{{ glob.files }}"
- name: copy sources - name: copy sources
command: command:
cmd: "cp -r src/ {{ tempdir.path }}/paperless-ng/src" cmd: "cp -r src/ {{ tempdir.path }}/paperless-ng/src"
args: args:
chdir: "{{ gitdir.path }}" chdir: "{{ gitdir.path }}"
- name: install paperlessng requirements - name: create paperlessng venv
pip: command:
requirements: "{{ gitdir.path }}/requirements.txt" cmd: "python3 -m virtualenv {{ gitdir.path }}/.venv/ -p /usr/bin/python3"
virtualenv: "{{ gitdir.path }}/.venv/"
extra_args: --upgrade
- name: compile messages - name: install paperlessng requirements
command:
cmd: "{{ gitdir.path }}/.venv/bin/python3 -m pip install -r {{ gitdir.path }}/requirements.txt"
- name: compile messages
command: "{{ gitdir.path }}/.venv/bin/python3 manage.py compilemessages" command: "{{ gitdir.path }}/.venv/bin/python3 manage.py compilemessages"
args: args:
chdir: "{{ tempdir.path }}/paperless-ng/src/" chdir: "{{ tempdir.path }}/paperless-ng/src/"
- name: collect static files - name: collect static files
command: "{{ gitdir.path }}/.venv/bin/python3 manage.py collectstatic --no-input" command: "{{ gitdir.path }}/.venv/bin/python3 manage.py collectstatic --no-input"
args: args:
chdir: "{{ tempdir.path }}/paperless-ng/src/" chdir: "{{ tempdir.path }}/paperless-ng/src/"
- name: remove pycache directories - name: remove pycache directories
shell: find . -name __pycache__ | xargs rm -r shell: find . -name __pycache__ | xargs rm -r
args: args:
chdir: "{{ tempdir.path }}" chdir: "{{ tempdir.path }}"
- name: remove temporary git directory - name: remove temporary git directory
file: file:
path: "{{ gitdir.path }}" path: "{{ gitdir.path }}"
state: absent state: absent
become: yes
become_user: "{{ paperlessng_system_user }}"

View File

@ -190,9 +190,19 @@
when: update_installation when: update_installation
- block: - block:
- name: create paperless-ng directory and set permissions
file:
path: "{{ paperlessng_directory }}"
state: directory
owner: "{{ paperlessng_system_user }}"
group: "{{ paperlessng_system_group }}"
mode: "750"
- name: create temporary directory - name: create temporary directory
become: yes
become_user: "{{ paperlessng_system_user }}"
tempfile: tempfile:
state: directory state: directory
path: "{{ paperlessng_directory }}"
register: tempdir register: tempdir
- name: check if version is available as release archive - name: check if version is available as release archive
uri: uri:
@ -238,7 +248,6 @@
group: "{{ paperlessng_system_group }}" group: "{{ paperlessng_system_group }}"
mode: "750" mode: "750"
with_items: with_items:
- "{{ paperlessng_directory }}"
- "{{ paperlessng_consumption_dir }}" - "{{ paperlessng_consumption_dir }}"
- "{{ paperlessng_data_dir }}" - "{{ paperlessng_data_dir }}"
- "{{ paperlessng_media_root }}" - "{{ paperlessng_media_root }}"