From 603127df8063440268de15e87177da5511f74efc Mon Sep 17 00:00:00 2001 From: Roman Kuzmenko Date: Fri, 12 Jan 2024 22:01:05 -0800 Subject: [PATCH] Added a github action to build and intsall. Test on more python versions. Test the devel branch --- .github/workflows/python-build.yml | 51 +++++++++++++++++++ .../{python-app.yml => python-test.yml} | 18 +++---- 2 files changed, 60 insertions(+), 9 deletions(-) create mode 100644 .github/workflows/python-build.yml rename .github/workflows/{python-app.yml => python-test.yml} (60%) diff --git a/.github/workflows/python-build.yml b/.github/workflows/python-build.yml new file mode 100644 index 0000000..c005eea --- /dev/null +++ b/.github/workflows/python-build.yml @@ -0,0 +1,51 @@ +name: Python application + +on: + push: + branches: ["main", "devel"] + pull_request: + branches: ["main", "devel"] + +permissions: + contents: read + +jobs: + test: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: ["3.9", "3.10", "3.11"] + + steps: + - uses: actions/checkout@v3 + - name: Set up Python 3.10 + uses: actions/setup-python@v3 + with: + python-version: ${{ matrix.python-version }} + - uses: actions/cache@v3 + id: cache + with: + path: ~/.cache/pip + key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.*') }} + restore-keys: | + ${{ runner.os }}-pip- + - name: Install dependencies + run: | + python -m pip install --upgrade pip build venv + # python -m pip install -r partcad/requirements.txt + # python -m pip install -r partcad-cli/requirements.txt + - name: Prepare environments + run: | + mkdir .venv + python -m venv .venv/build + python -m venv .venv/build-cli + python -m venv .venv/install + - name: Test building and packaging + run: | + (source .venv/build/bin/activate && cd partcad && python -m build) + (source .venv/build-cli/bin/activate && cd partcad-cli && python -m build) + - name: Test installation + run: | + (source .venv/install/bin/activate && python -m pip install partcad/dist/partcad-[0-9].[0-9]*.[0-9]*-py3-none-any.whl) + (source .venv/install/bin/activate && python -m pip install partcad-cli/dist/partcad_cli-[0-9].[0-9]*.[0-9]*-py3-none-any.whl) diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-test.yml similarity index 60% rename from .github/workflows/python-app.yml rename to .github/workflows/python-test.yml index 7efe50f..20e3091 100644 --- a/.github/workflows/python-app.yml +++ b/.github/workflows/python-test.yml @@ -1,13 +1,10 @@ -# This workflow will install Python dependencies, run tests and lint with a single version of Python -# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python - name: Python application on: push: - branches: ["main"] + branches: ["main", "devel"] pull_request: - branches: ["main"] + branches: ["main", "devel"] permissions: contents: read @@ -15,13 +12,17 @@ permissions: jobs: test: runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: ["3.9", "3.10", "3.11"] steps: - uses: actions/checkout@v3 - name: Set up Python 3.10 uses: actions/setup-python@v3 with: - python-version: "3.10" + python-version: ${{ matrix.python-version }} - uses: actions/cache@v3 id: cache with: @@ -33,9 +34,8 @@ jobs: run: | python -m pip install --upgrade pip pip install pytest - pip install ./partcad - pip install ./partcad-cli - #if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + pip install -r partcad/requirements.txt + pip install -r partcad-cli/requirements.txt - name: Test with pytest run: | pytest