Generate requirements files with pip-compile. #31
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Generate requirements files with pip-compile. | |
on: | |
workflow_dispatch: | |
jobs: | |
generate_requirements: | |
name: Generate requirements files for ${{ matrix.os }} platform. | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: | |
- ubuntu-latest | |
- windows-latest | |
- macos-latest | |
steps: | |
- name: Checkout the repository. | |
uses: actions/checkout@v3 | |
- name: Set up Python 3.8. | |
uses: actions/setup-python@v4 | |
with: | |
python-version: | | |
3.11 | |
3.10 | |
3.9 | |
3.8 | |
- name: Install dependencies on Linux/macOS | |
if: matrix.os != 'windows-latest' | |
run: | | |
python3.11 -m pip install -U pip pip-tools | |
python3.10 -m pip install -U pip pip-tools | |
python3.9 -m pip install -U pip pip-tools | |
python3.8 -m pip install -U pip pip-tools | |
- name: Install dependencies on Windows | |
if: matrix.os == 'windows-latest' | |
run: | | |
py -3.11 -m pip install -U pip pip-tools | |
py -3.10 -m pip install -U pip pip-tools | |
py -3.9 -m pip install -U pip pip-tools | |
py -3.8 -m pip install -U pip pip-tools | |
- name: Generate requirements files. | |
id: compile_requirements | |
run: | | |
python .github/workflows/scripts/compile_requirements.py | |
- name: Upload requirements files. | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ steps.compile_requirements.outputs.sys_platform }} | |
path: requirements/${{ steps.compile_requirements.outputs.sys_platform }}-*.txt | |
merge_requirements: | |
name: Merge requirements files. | |
needs: generate_requirements | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout the repository. | |
uses: actions/checkout@v3 | |
- name: Set up Python 3.8. | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.8' | |
- name: Install dependencies | |
run: | | |
python -m pip install -U "packaging>=22.0" | |
- name: Download Windows requirements. | |
uses: actions/download-artifact@v3 | |
with: | |
name: win32 | |
path: requirements | |
- name: Download Linux requirements. | |
uses: actions/download-artifact@v3 | |
with: | |
name: linux | |
path: requirements | |
- name: Download macOS requirements. | |
uses: actions/download-artifact@v3 | |
with: | |
name: darwin | |
path: requirements | |
- name: Merge requirements files. | |
run: | | |
python .github/workflows/scripts/merge_requirements.py | |
- name: Upload merged requirements files. | |
uses: actions/upload-artifact@v3 | |
with: | |
name: merged | |
path: | | |
requirements/base.txt | |
requirements/extra-*.txt |