mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-31 15:12:06 +00:00 
			
		
		
		
	Fix python venv restoring (#4965)
* Fix python venv restoring * Add shell * Fix indentation
This commit is contained in:
		
							
								
								
									
										38
									
								
								.github/actions/restore-python/action.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								.github/actions/restore-python/action.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,38 @@ | ||||
| name: Restore Python | ||||
| inputs: | ||||
|   python-version: | ||||
|     description: Python version to restore | ||||
|     required: true | ||||
|     type: string | ||||
|   cache-key: | ||||
|     description: Cache key to use | ||||
|     required: true | ||||
|     type: string | ||||
| outputs: | ||||
|   python-version: | ||||
|     description: Python version restored | ||||
|     value: ${{ steps.python.outputs.python-version }} | ||||
| runs: | ||||
|   using: "composite" | ||||
|   steps: | ||||
|     - name: Set up Python ${{ inputs.python-version }} | ||||
|       id: python | ||||
|       uses: actions/setup-python@v4.6.0 | ||||
|       with: | ||||
|         python-version: ${{ inputs.python-version }} | ||||
|     - name: Restore Python virtual environment | ||||
|       id: cache-venv | ||||
|       uses: actions/cache/restore@v3.3.1 | ||||
|       with: | ||||
|         path: venv | ||||
|         # yamllint disable-line rule:line-length | ||||
|         key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-venv-${{ inputs.cache-key }} | ||||
|     - name: Create Python virtual environment | ||||
|       if: steps.cache-venv.outputs.cache-hit != 'true' | ||||
|       shell: bash | ||||
|       run: | | ||||
|         python -m venv venv | ||||
|         . venv/bin/activate | ||||
|         python --version | ||||
|         pip install -r requirements.txt -r requirements_optional.txt -r requirements_test.txt | ||||
|         pip install -e . | ||||
							
								
								
									
										90
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										90
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							| @@ -26,10 +26,16 @@ jobs: | ||||
|   common: | ||||
|     name: Create common environment | ||||
|     runs-on: ubuntu-latest | ||||
|     outputs: | ||||
|       cache-key: ${{ steps.cache-key.outputs.key }} | ||||
|     steps: | ||||
|       - name: Check out code from GitHub | ||||
|         uses: actions/checkout@v3.5.2 | ||||
|       - name: Generate cache-key | ||||
|         id: cache-key | ||||
|         run: echo key="${{ hashFiles('requirements.txt', 'requirements_optional.txt', 'requirements_test.txt') }}" >> $GITHUB_OUTPUT | ||||
|       - name: Set up Python ${{ env.DEFAULT_PYTHON }} | ||||
|         id: python | ||||
|         uses: actions/setup-python@v4.6.0 | ||||
|         with: | ||||
|           python-version: ${{ env.DEFAULT_PYTHON }} | ||||
| @@ -39,7 +45,7 @@ jobs: | ||||
|         with: | ||||
|           path: venv | ||||
|           # yamllint disable-line rule:line-length | ||||
|           key: ${{ runner.os }}-${{ env.DEFAULT_PYTHON }}-venv-${{ hashFiles('requirements.txt', 'requirements_optional.txt', 'requirements_test.txt') }} | ||||
|           key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-venv-${{ steps.cache-key.outputs.key }} | ||||
|       - name: Create Python virtual environment | ||||
|         if: steps.cache-venv.outputs.cache-hit != 'true' | ||||
|         run: | | ||||
| @@ -66,12 +72,11 @@ jobs: | ||||
|     steps: | ||||
|       - name: Check out code from GitHub | ||||
|         uses: actions/checkout@v3.5.2 | ||||
|       - name: Restore Python virtual environment | ||||
|         uses: actions/cache/restore@v3.3.1 | ||||
|       - name: Restore Python | ||||
|         uses: ./.github/actions/restore-python | ||||
|         with: | ||||
|           path: venv | ||||
|           # yamllint disable-line rule:line-length | ||||
|           key: ${{ runner.os }}-${{ env.DEFAULT_PYTHON }}-venv-${{ hashFiles('requirements.txt', 'requirements_optional.txt', 'requirements_test.txt') }} | ||||
|           python-version: ${{ env.DEFAULT_PYTHON }} | ||||
|           cache-key: ${{ needs.common.outputs.cache-key }} | ||||
|       - name: Run black | ||||
|         run: | | ||||
|           . venv/bin/activate | ||||
| @@ -88,12 +93,11 @@ jobs: | ||||
|     steps: | ||||
|       - name: Check out code from GitHub | ||||
|         uses: actions/checkout@v3.5.2 | ||||
|       - name: Restore Python virtual environment | ||||
|         uses: actions/cache/restore@v3.3.1 | ||||
|       - name: Restore Python | ||||
|         uses: ./.github/actions/restore-python | ||||
|         with: | ||||
|           path: venv | ||||
|           # yamllint disable-line rule:line-length | ||||
|           key: ${{ runner.os }}-${{ env.DEFAULT_PYTHON }}-venv-${{ hashFiles('requirements.txt', 'requirements_optional.txt', 'requirements_test.txt') }} | ||||
|           python-version: ${{ env.DEFAULT_PYTHON }} | ||||
|           cache-key: ${{ needs.common.outputs.cache-key }} | ||||
|       - name: Run flake8 | ||||
|         run: | | ||||
|           . venv/bin/activate | ||||
| @@ -110,12 +114,11 @@ jobs: | ||||
|     steps: | ||||
|       - name: Check out code from GitHub | ||||
|         uses: actions/checkout@v3.5.2 | ||||
|       - name: Restore Python virtual environment | ||||
|         uses: actions/cache/restore@v3.3.1 | ||||
|       - name: Restore Python | ||||
|         uses: ./.github/actions/restore-python | ||||
|         with: | ||||
|           path: venv | ||||
|           # yamllint disable-line rule:line-length | ||||
|           key: ${{ runner.os }}-${{ env.DEFAULT_PYTHON }}-venv-${{ hashFiles('requirements.txt', 'requirements_optional.txt', 'requirements_test.txt') }} | ||||
|           python-version: ${{ env.DEFAULT_PYTHON }} | ||||
|           cache-key: ${{ needs.common.outputs.cache-key }} | ||||
|       - name: Run pylint | ||||
|         run: | | ||||
|           . venv/bin/activate | ||||
| @@ -132,12 +135,11 @@ jobs: | ||||
|     steps: | ||||
|       - name: Check out code from GitHub | ||||
|         uses: actions/checkout@v3.5.2 | ||||
|       - name: Restore Python virtual environment | ||||
|         uses: actions/cache/restore@v3.3.1 | ||||
|       - name: Restore Python | ||||
|         uses: ./.github/actions/restore-python | ||||
|         with: | ||||
|           path: venv | ||||
|           # yamllint disable-line rule:line-length | ||||
|           key: ${{ runner.os }}-${{ env.DEFAULT_PYTHON }}-venv-${{ hashFiles('requirements.txt', 'requirements_optional.txt', 'requirements_test.txt') }} | ||||
|           python-version: ${{ env.DEFAULT_PYTHON }} | ||||
|           cache-key: ${{ needs.common.outputs.cache-key }} | ||||
|       - name: Run pyupgrade | ||||
|         run: | | ||||
|           . venv/bin/activate | ||||
| @@ -154,12 +156,11 @@ jobs: | ||||
|     steps: | ||||
|       - name: Check out code from GitHub | ||||
|         uses: actions/checkout@v3.5.2 | ||||
|       - name: Restore Python virtual environment | ||||
|         uses: actions/cache/restore@v3.3.1 | ||||
|       - name: Restore Python | ||||
|         uses: ./.github/actions/restore-python | ||||
|         with: | ||||
|           path: venv | ||||
|           # yamllint disable-line rule:line-length | ||||
|           key: ${{ runner.os }}-${{ env.DEFAULT_PYTHON }}-venv-${{ hashFiles('requirements.txt', 'requirements_optional.txt', 'requirements_test.txt') }} | ||||
|           python-version: ${{ env.DEFAULT_PYTHON }} | ||||
|           cache-key: ${{ needs.common.outputs.cache-key }} | ||||
|       - name: Register matcher | ||||
|         run: echo "::add-matcher::.github/workflows/matchers/ci-custom.json" | ||||
|       - name: Run script/ci-custom | ||||
| @@ -176,12 +177,11 @@ jobs: | ||||
|     steps: | ||||
|       - name: Check out code from GitHub | ||||
|         uses: actions/checkout@v3.5.2 | ||||
|       - name: Restore Python virtual environment | ||||
|         uses: actions/cache/restore@v3.3.1 | ||||
|       - name: Restore Python | ||||
|         uses: ./.github/actions/restore-python | ||||
|         with: | ||||
|           path: venv | ||||
|           # yamllint disable-line rule:line-length | ||||
|           key: ${{ runner.os }}-${{ env.DEFAULT_PYTHON }}-venv-${{ hashFiles('requirements.txt', 'requirements_optional.txt', 'requirements_test.txt') }} | ||||
|           python-version: ${{ env.DEFAULT_PYTHON }} | ||||
|           cache-key: ${{ needs.common.outputs.cache-key }} | ||||
|       - name: Register matcher | ||||
|         run: echo "::add-matcher::.github/workflows/matchers/pytest.json" | ||||
|       - name: Run pytest | ||||
| @@ -197,12 +197,11 @@ jobs: | ||||
|     steps: | ||||
|       - name: Check out code from GitHub | ||||
|         uses: actions/checkout@v3.5.2 | ||||
|       - name: Restore Python virtual environment | ||||
|         uses: actions/cache/restore@v3.3.1 | ||||
|       - name: Restore Python | ||||
|         uses: ./.github/actions/restore-python | ||||
|         with: | ||||
|           path: venv | ||||
|           # yamllint disable-line rule:line-length | ||||
|           key: ${{ runner.os }}-${{ env.DEFAULT_PYTHON }}-venv-${{ hashFiles('requirements.txt', 'requirements_optional.txt', 'requirements_test.txt') }} | ||||
|           python-version: ${{ env.DEFAULT_PYTHON }} | ||||
|           cache-key: ${{ needs.common.outputs.cache-key }} | ||||
|       - name: Install clang-format | ||||
|         run: | | ||||
|           . venv/bin/activate | ||||
| @@ -237,12 +236,11 @@ jobs: | ||||
|     steps: | ||||
|       - name: Check out code from GitHub | ||||
|         uses: actions/checkout@v3.5.2 | ||||
|       - name: Restore Python virtual environment | ||||
|         uses: actions/cache/restore@v3.3.1 | ||||
|       - name: Restore Python | ||||
|         uses: ./.github/actions/restore-python | ||||
|         with: | ||||
|           path: venv | ||||
|           # yamllint disable-line rule:line-length | ||||
|           key: ${{ runner.os }}-${{ env.DEFAULT_PYTHON }}-venv-${{ hashFiles('requirements.txt', 'requirements_optional.txt', 'requirements_test.txt') }} | ||||
|           python-version: ${{ env.DEFAULT_PYTHON }} | ||||
|           cache-key: ${{ needs.common.outputs.cache-key }} | ||||
|       - name: Cache platformio | ||||
|         uses: actions/cache@v3.3.1 | ||||
|         with: | ||||
| @@ -300,13 +298,11 @@ jobs: | ||||
|     steps: | ||||
|       - name: Check out code from GitHub | ||||
|         uses: actions/checkout@v3.5.2 | ||||
|       - name: Restore Python virtual environment | ||||
|         uses: actions/cache/restore@v3.3.1 | ||||
|       - name: Restore Python | ||||
|         uses: ./.github/actions/restore-python | ||||
|         with: | ||||
|           path: venv | ||||
|           # yamllint disable-line rule:line-length | ||||
|           key: ${{ runner.os }}-${{ env.DEFAULT_PYTHON }}-venv-${{ hashFiles('requirements.txt', 'requirements_optional.txt', 'requirements_test.txt') }} | ||||
|         # Use per check platformio cache because checks use different parts | ||||
|           python-version: ${{ env.DEFAULT_PYTHON }} | ||||
|           cache-key: ${{ needs.common.outputs.cache-key }} | ||||
|       - name: Cache platformio | ||||
|         uses: actions/cache@v3.3.1 | ||||
|         with: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user