name: 'Setup Enviroment' description: 'Setup the enviroment for general InvenTree tests' author: 'inventree' inputs: python: required: false description: 'Install python.' default: 'true' npm: required: false description: 'Install npm.' default: 'false' install: required: false description: 'Install the InvenTree requirements?' default: 'false' update: required: false description: 'Should a full update cycle be run?' default: 'false' apt-dependency: required: false description: 'Extra APT package for install.' pip-dependency: required: false description: 'Extra python package for install.' runs: using: 'composite' steps: - name: Checkout Code uses: actions/checkout@v2 # Python installs - name: Set up Python ${{ env.python_version }} if: ${{ inputs.python == 'true' }} uses: actions/setup-python@v2 with: python-version: ${{ env.python_version }} cache: pip - name: Install Base Python Dependencies if: ${{ inputs.python == 'true' }} shell: bash run: | python3 -m pip install -U pip pip3 install invoke wheel - name: Install Specific Python Dependencies if: ${{ inputs.pip-dependency }} shell: bash run: pip3 install ${{ inputs.pip-dependency }} # NPM installs - name: Install node.js ${{ env.node_version }} if: ${{ inputs.npm == 'true' }} uses: actions/setup-node@v2 with: node-version: ${{ env.node_version }} cache: 'npm' - name: Intall npm packages if: ${{ inputs.npm == 'true' }} shell: bash run: npm install # OS installs - name: Install OS Dependencies if: ${{ inputs.apt-dependency }} shell: bash run: | sudo apt-get update sudo apt-get install ${{ inputs.apt-dependency }} # Invoke commands - name: Run invoke install if: ${{ inputs.install == 'true' }} shell: bash run: invoke install - name: Run invoke update if: ${{ inputs.update == 'true' }} shell: bash run: invoke update