--- - name: install dev dependencies apt: pkg: - git - npm - gettext - 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: state: directory path: "{{ paperlessng_directory }}" register: gitdir - name: pull paperless-ng git: repo: https://github.com/paperless-ngx/paperless-ngx.git dest: "{{ gitdir.path }}" version: "{{ paperlessng_version }}" refspec: "+refs/pull/*:refs/pull/*" - name: compile frontend command: cmd: "{{ item }}" args: chdir: "{{ gitdir.path }}/src-ui" failed_when: false with_items: - npm install -g @angular/cli - npm install - ./node_modules/.bin/ng build --prod - name: copy application into place copy: src: "{{ gitdir.path }}/{{ item.src }}" remote_src: yes dest: "{{ tempdir.path }}/paperless-ng/{{ item.dest | default('') }}" with_items: - src: CONTRIBUTING.md - src: LICENSE - src: Pipfile - src: Pipfile.lock - src: README.md - src: requirements.txt - src: gunicorn.conf.py - src: paperless.conf.example dest: "paperless.conf" - name: glob all scripts find: paths: ["{{ gitdir.path }}/scripts/"] patterns: - "*.service" - "*.sh" register: glob - name: copy scripts copy: src: "{{ item.path }}" remote_src: yes dest: "{{ tempdir.path }}/paperless-ng/scripts/" with_items: - "{{ glob.files }}" - name: copy sources command: cmd: "cp -r src/ {{ tempdir.path }}/paperless-ng/src" args: chdir: "{{ gitdir.path }}" - name: create paperlessng venv command: cmd: "python3 -m virtualenv {{ gitdir.path }}/.venv/ -p /usr/bin/python3" - 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" args: chdir: "{{ tempdir.path }}/paperless-ng/src/" - name: collect static files command: "{{ gitdir.path }}/.venv/bin/python3 manage.py collectstatic --no-input" args: chdir: "{{ tempdir.path }}/paperless-ng/src/" - name: remove pycache directories shell: find . -name __pycache__ | xargs rm -r args: chdir: "{{ tempdir.path }}" - name: remove temporary git directory file: path: "{{ gitdir.path }}" state: absent become: yes become_user: "{{ paperlessng_system_user }}"