mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-11-03 19:17:13 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			113 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			113 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
---
 | 
						|
- 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/jonaswinkler/paperless-ng.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 }}"
 |