mirror of
				https://github.com/inventree/InvenTree.git
				synced 2025-11-03 22:55:43 +00:00 
			
		
		
		
	* - move reqs file to contrib - detect previously used python version - safe extra requirements to INSTALLER_EXTRA * add missing fi * move site setting Co-authored-by: Matthias Mair <code@mjmair.com>
This commit is contained in:
		
							
								
								
									
										2
									
								
								.github/workflows/docker.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/docker.yaml
									
									
									
									
										vendored
									
									
								
							@@ -73,7 +73,7 @@ jobs:
 | 
				
			|||||||
          python-version: ${{ env.python_version }}
 | 
					          python-version: ${{ env.python_version }}
 | 
				
			||||||
      - name: Version Check
 | 
					      - name: Version Check
 | 
				
			||||||
        run: |
 | 
					        run: |
 | 
				
			||||||
          pip install --require-hashes -r .github/requirements.txt
 | 
					          pip install --require-hashes -r contrib/dev_reqs/requirements.txt
 | 
				
			||||||
          python3 .github/scripts/version_check.py
 | 
					          python3 .github/scripts/version_check.py
 | 
				
			||||||
          echo "git_commit_hash=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
 | 
					          echo "git_commit_hash=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
 | 
				
			||||||
          echo "git_commit_date=$(git show -s --format=%ci)" >> $GITHUB_ENV
 | 
					          echo "git_commit_date=$(git show -s --format=%ci)" >> $GITHUB_ENV
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										8
									
								
								.github/workflows/qc_checks.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.github/workflows/qc_checks.yaml
									
									
									
									
										vendored
									
									
								
							@@ -104,7 +104,7 @@ jobs:
 | 
				
			|||||||
        uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # pin@v3.0.1
 | 
					        uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # pin@v3.0.1
 | 
				
			||||||
      - name: Check Version
 | 
					      - name: Check Version
 | 
				
			||||||
        run: |
 | 
					        run: |
 | 
				
			||||||
          pip install --require-hashes -r .github/requirements.txt
 | 
					          pip install --require-hashes -r contrib/dev_reqs/requirements.txt
 | 
				
			||||||
          python3 .github/scripts/version_check.py
 | 
					          python3 .github/scripts/version_check.py
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  mkdocs:
 | 
					  mkdocs:
 | 
				
			||||||
@@ -122,7 +122,7 @@ jobs:
 | 
				
			|||||||
          python-version: ${{ env.python_version }}
 | 
					          python-version: ${{ env.python_version }}
 | 
				
			||||||
      - name: Check Config
 | 
					      - name: Check Config
 | 
				
			||||||
        run: |
 | 
					        run: |
 | 
				
			||||||
          pip install --require-hashes -r .github/requirements.txt
 | 
					          pip install --require-hashes -r contrib/dev_reqs/requirements.txt
 | 
				
			||||||
          pip install --require-hashes -r docs/requirements.txt
 | 
					          pip install --require-hashes -r docs/requirements.txt
 | 
				
			||||||
          python docs/ci/check_mkdocs_config.py
 | 
					          python docs/ci/check_mkdocs_config.py
 | 
				
			||||||
      - name: Check Links
 | 
					      - name: Check Links
 | 
				
			||||||
@@ -168,7 +168,7 @@ jobs:
 | 
				
			|||||||
      - name: Download public schema
 | 
					      - name: Download public schema
 | 
				
			||||||
        if: needs.paths-filter.outputs.api == 'false'
 | 
					        if: needs.paths-filter.outputs.api == 'false'
 | 
				
			||||||
        run: |
 | 
					        run: |
 | 
				
			||||||
          pip install --require-hashes -r .github/requirements.txt >/dev/null 2>&1
 | 
					          pip install --require-hashes -r contrib/dev_reqs/requirements.txt >/dev/null 2>&1
 | 
				
			||||||
          version="$(python3 .github/scripts/version_check.py only_version 2>&1)"
 | 
					          version="$(python3 .github/scripts/version_check.py only_version 2>&1)"
 | 
				
			||||||
          echo "Version: $version"
 | 
					          echo "Version: $version"
 | 
				
			||||||
          url="https://raw.githubusercontent.com/inventree/schema/main/export/${version}/api.yaml"
 | 
					          url="https://raw.githubusercontent.com/inventree/schema/main/export/${version}/api.yaml"
 | 
				
			||||||
@@ -187,7 +187,7 @@ jobs:
 | 
				
			|||||||
        id: version
 | 
					        id: version
 | 
				
			||||||
        if: github.ref == 'refs/heads/master' && needs.paths-filter.outputs.api == 'true'
 | 
					        if: github.ref == 'refs/heads/master' && needs.paths-filter.outputs.api == 'true'
 | 
				
			||||||
        run: |
 | 
					        run: |
 | 
				
			||||||
          pip install --require-hashes -r .github/requirements.txt >/dev/null 2>&1
 | 
					          pip install --require-hashes -r contrib/dev_reqs/requirements.txt >/dev/null 2>&1
 | 
				
			||||||
          version="$(python3 .github/scripts/version_check.py only_version 2>&1)"
 | 
					          version="$(python3 .github/scripts/version_check.py only_version 2>&1)"
 | 
				
			||||||
          echo "Version: $version"
 | 
					          echo "Version: $version"
 | 
				
			||||||
          echo "version=$version" >> "$GITHUB_OUTPUT"
 | 
					          echo "version=$version" >> "$GITHUB_OUTPUT"
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								.github/workflows/release.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/release.yaml
									
									
									
									
										vendored
									
									
								
							@@ -18,7 +18,7 @@ jobs:
 | 
				
			|||||||
        uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # pin@v4.1.5
 | 
					        uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # pin@v4.1.5
 | 
				
			||||||
      - name: Version Check
 | 
					      - name: Version Check
 | 
				
			||||||
        run: |
 | 
					        run: |
 | 
				
			||||||
          pip install --require-hashes -r .github/requirements.txt
 | 
					          pip install --require-hashes -r contrib/dev_reqs/requirements.txt
 | 
				
			||||||
          python3 .github/scripts/version_check.py
 | 
					          python3 .github/scripts/version_check.py
 | 
				
			||||||
      - name: Push to Stable Branch
 | 
					      - name: Push to Stable Branch
 | 
				
			||||||
        uses: ad-m/github-push-action@d91a481090679876dfc4178fef17f286781251df # pin@v0.8.0
 | 
					        uses: ad-m/github-push-action@d91a481090679876dfc4178fef17f286781251df # pin@v0.8.0
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -39,8 +39,8 @@ repos:
 | 
				
			|||||||
        files: src/backend/requirements\.(in|txt)$
 | 
					        files: src/backend/requirements\.(in|txt)$
 | 
				
			||||||
      - id: pip-compile
 | 
					      - id: pip-compile
 | 
				
			||||||
        name: pip-compile requirements.txt
 | 
					        name: pip-compile requirements.txt
 | 
				
			||||||
        args: [.github/requirements.in, -o, .github/requirements.txt,--python-version=3.9, --no-strip-extras, --generate-hashes]
 | 
					        args: [contrib/dev_reqs/requirements.in, -o, contrib/dev_reqs/requirements.txt,--python-version=3.9, --no-strip-extras, --generate-hashes]
 | 
				
			||||||
        files: .github/requirements\.(in|txt)$
 | 
					        files: contrib/dev_reqs/requirements\.(in|txt)$
 | 
				
			||||||
      - id: pip-compile
 | 
					      - id: pip-compile
 | 
				
			||||||
        name: pip-compile requirements.txt
 | 
					        name: pip-compile requirements.txt
 | 
				
			||||||
        args: [docs/requirements.in, -o, docs/requirements.txt,--python-version=3.9, --no-strip-extras, --generate-hashes]
 | 
					        args: [docs/requirements.in, -o, docs/requirements.txt,--python-version=3.9, --no-strip-extras, --generate-hashes]
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
# This file was autogenerated by uv via the following command:
 | 
					# This file was autogenerated by uv via the following command:
 | 
				
			||||||
#    uv pip compile .github/requirements.in -o .github/requirements.txt --python-version=3.9 --no-strip-extras --generate-hashes
 | 
					#    uv pip compile contrib/dev_reqs/requirements.in -o contrib/dev_reqs/requirements.txt --python-version=3.9 --no-strip-extras --generate-hashes
 | 
				
			||||||
certifi==2024.2.2 \
 | 
					certifi==2024.2.2 \
 | 
				
			||||||
    --hash=sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f \
 | 
					    --hash=sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f \
 | 
				
			||||||
    --hash=sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1
 | 
					    --hash=sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1
 | 
				
			||||||
@@ -44,6 +44,18 @@ function detect_ip() {
 | 
				
			|||||||
  echo "IP address is ${INVENTREE_IP}"
 | 
					  echo "IP address is ${INVENTREE_IP}"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function detect_python() {
 | 
				
			||||||
 | 
					  # Detect if there is already a python version installed in /opt/inventree/env/lib
 | 
				
			||||||
 | 
					  if test -f "${APP_HOME}/env/bin/python"; then
 | 
				
			||||||
 | 
					    echo "# Python environment already present"
 | 
				
			||||||
 | 
					    # Extract earliest python version initialised from /opt/inventree/env/lib
 | 
				
			||||||
 | 
					    SETUP_PYTHON=$(ls -1 ${APP_HOME}/env/bin/python* | sort | head -n 1)
 | 
				
			||||||
 | 
					    echo "# Found earliest version: ${SETUP_PYTHON}"
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    echo "# No python environment found - using ${SETUP_PYTHON}"
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function get_env() {
 | 
					function get_env() {
 | 
				
			||||||
  envname=$1
 | 
					  envname=$1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -90,7 +102,7 @@ function detect_envs() {
 | 
				
			|||||||
    echo "# Using existing config file: ${INVENTREE_CONFIG_FILE}"
 | 
					    echo "# Using existing config file: ${INVENTREE_CONFIG_FILE}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Install parser
 | 
					    # Install parser
 | 
				
			||||||
    pip install --require-hashes -r ${APP_HOME}/.github/requirements.txt -q
 | 
					    pip install --require-hashes -r ${APP_HOME}/contrib/dev_reqs/requirements.txt -q
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Load config
 | 
					    # Load config
 | 
				
			||||||
    local CONF=$(cat ${INVENTREE_CONFIG_FILE} | jc --yaml)
 | 
					    local CONF=$(cat ${INVENTREE_CONFIG_FILE} | jc --yaml)
 | 
				
			||||||
@@ -163,12 +175,20 @@ function create_initscripts() {
 | 
				
			|||||||
    sudo -u ${APP_USER} --preserve-env=$SETUP_ENVS bash -c "cd ${APP_HOME} && ${SETUP_PYTHON} -m venv env"
 | 
					    sudo -u ${APP_USER} --preserve-env=$SETUP_ENVS bash -c "cd ${APP_HOME} && ${SETUP_PYTHON} -m venv env"
 | 
				
			||||||
    sudo -u ${APP_USER} --preserve-env=$SETUP_ENVS bash -c "cd ${APP_HOME} && env/bin/pip install invoke wheel"
 | 
					    sudo -u ${APP_USER} --preserve-env=$SETUP_ENVS bash -c "cd ${APP_HOME} && env/bin/pip install invoke wheel"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Check INSTALLER_EXTRA exists and load it
 | 
				
			||||||
 | 
					    if test -f "${APP_HOME}/INSTALLER_EXTRA"; then
 | 
				
			||||||
 | 
					      echo "# Loading extra packages from INSTALLER_EXTRA"
 | 
				
			||||||
 | 
					      source ${APP_HOME}/INSTALLER_EXTRA
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if [ -n "${SETUP_EXTRA_PIP}" ]; then
 | 
					    if [ -n "${SETUP_EXTRA_PIP}" ]; then
 | 
				
			||||||
      echo "# Installing extra pip packages"
 | 
					      echo "# Installing extra pip packages"
 | 
				
			||||||
      if [ -n "${SETUP_DEBUG}" ]; then
 | 
					      if [ -n "${SETUP_DEBUG}" ]; then
 | 
				
			||||||
        echo "# Extra pip packages: ${SETUP_EXTRA_PIP}"
 | 
					        echo "# Extra pip packages: ${SETUP_EXTRA_PIP}"
 | 
				
			||||||
      fi
 | 
					      fi
 | 
				
			||||||
      sudo -u ${APP_USER} --preserve-env=$SETUP_ENVS bash -c "cd ${APP_HOME} && env/bin/pip install ${SETUP_EXTRA_PIP}"
 | 
					      sudo -u ${APP_USER} --preserve-env=$SETUP_ENVS bash -c "cd ${APP_HOME} && env/bin/pip install ${SETUP_EXTRA_PIP}"
 | 
				
			||||||
 | 
					      # Write extra packages to INSTALLER_EXTRA
 | 
				
			||||||
 | 
					      echo "SETUP_EXTRA_PIP='${SETUP_EXTRA_PIP}'" >>${APP_HOME}/INSTALLER_EXTRA
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -283,6 +303,20 @@ function set_env() {
 | 
				
			|||||||
  chown ${APP_USER}:${APP_GROUP} ${DATA_DIR} ${INVENTREE_CONFIG_FILE}
 | 
					  chown ${APP_USER}:${APP_GROUP} ${DATA_DIR} ${INVENTREE_CONFIG_FILE}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function set_site() {
 | 
				
			||||||
 | 
					  # Ensure IP is known
 | 
				
			||||||
 | 
					  if [ -z "${INVENTREE_IP}" ]; then
 | 
				
			||||||
 | 
					    echo "# No IP address found - skipping"
 | 
				
			||||||
 | 
					    return
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Check if INVENTREE_SITE_URL in inventree config
 | 
				
			||||||
 | 
					  if [ -z "$(inventree config:get INVENTREE_SITE_URL)" ]; then
 | 
				
			||||||
 | 
					    echo "# Setting up InvenTree site URL"
 | 
				
			||||||
 | 
					    inventree config:set INVENTREE_SITE_URL=http://${INVENTREE_IP}
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function final_message() {
 | 
					function final_message() {
 | 
				
			||||||
  echo -e "####################################################################################"
 | 
					  echo -e "####################################################################################"
 | 
				
			||||||
  echo -e "This InvenTree install uses nginx, the settings for the webserver can be found in"
 | 
					  echo -e "This InvenTree install uses nginx, the settings for the webserver can be found in"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -33,6 +33,7 @@ detect_envs
 | 
				
			|||||||
detect_docker
 | 
					detect_docker
 | 
				
			||||||
detect_initcmd
 | 
					detect_initcmd
 | 
				
			||||||
detect_ip
 | 
					detect_ip
 | 
				
			||||||
 | 
					detect_python
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# create processes
 | 
					# create processes
 | 
				
			||||||
create_initscripts
 | 
					create_initscripts
 | 
				
			||||||
@@ -45,6 +46,7 @@ update_or_install
 | 
				
			|||||||
if [ "${SETUP_CONF_LOADED}" = "true" ]; then
 | 
					if [ "${SETUP_CONF_LOADED}" = "true" ]; then
 | 
				
			||||||
  set_env
 | 
					  set_env
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					set_site
 | 
				
			||||||
start_inventree
 | 
					start_inventree
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# show info
 | 
					# show info
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user