Since the only usage of prompt is within LLMs, it is reasonable to keep it within the LLM module. This way, it would be easier to discover module, and make the code base less complicated. Changes: * Move prompt components into llms * Bump version 0.3.1 * Make pip install dependencies in eager mode --------- Co-authored-by: ian <ian@cinnamon.is>
100 lines
3.5 KiB
YAML
100 lines
3.5 KiB
YAML
name: unit-test
|
|
|
|
on:
|
|
pull_request:
|
|
branches: [main]
|
|
push:
|
|
branches: [main]
|
|
|
|
jobs:
|
|
unit-test:
|
|
if: ${{ !cancelled() }}
|
|
runs-on: ${{ matrix.os }}
|
|
timeout-minutes: 20
|
|
defaults:
|
|
run:
|
|
shell: ${{ matrix.shell }}
|
|
strategy:
|
|
matrix:
|
|
python-version: ["3.10", "3.11"]
|
|
include:
|
|
- os: ubuntu-latest
|
|
shell: bash
|
|
ACTIVATE_ENV: ". env/bin/activate"
|
|
GITHUB_OUTPUT: "$GITHUB_OUTPUT"
|
|
# - os: windows-latest
|
|
# shell: pwsh
|
|
# ACTIVATE_ENV: env/Scripts/activate.ps1
|
|
# GITHUB_OUTPUT: "$env:GITHUB_OUTPUT"
|
|
|
|
name: unit testing with python ${{ matrix.python-version }}
|
|
steps:
|
|
- name: Clone the repo
|
|
uses: actions/checkout@v3
|
|
with:
|
|
ref: ${{ github.event.pull_request.head.sha }}
|
|
|
|
- name: Get Head Commit Message
|
|
id: get-head-commit-message
|
|
run: echo "message=$(git show -s --format=%s)" | tee -a ${{ matrix.GITHUB_OUTPUT }}
|
|
|
|
- name: Check ignore caching
|
|
id: check-ignore-cache
|
|
run: |
|
|
ignore_cache=${{ contains(steps.get-head-commit-message.outputs.message, '[ignore cache]') }}
|
|
echo "check=$ignore_cache" | tee -a ${{ matrix.GITHUB_OUTPUT }}
|
|
|
|
- name: Set up Python ${{ matrix.python-version }} on ${{ runner.os }}
|
|
uses: actions/setup-python@v4
|
|
id: setup_python
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
architecture: x64
|
|
|
|
- name: Get cache key
|
|
id: get-cache-key
|
|
run: |
|
|
package_version=$(python setup.py --version)
|
|
cache_key="${{ runner.os }}-py${{ matrix.python-version }}-v${package_version}"
|
|
echo "key=$cache_key" | tee -a ${{ matrix.GITHUB_OUTPUT }}
|
|
|
|
- name: Try to restore dependencies from ${{ steps.get-cache-key.outputs.key }}
|
|
id: restore-dependencies
|
|
if: steps.check-ignore-cache.outputs.check != 'true'
|
|
uses: actions/cache/restore@v3
|
|
with:
|
|
path: ${{ env.pythonLocation }}
|
|
key: ${{ steps.get-cache-key.outputs.key }}
|
|
# could using cache of previous ver to reuse unchanged packages
|
|
restore-keys: ${{ runner.os }}-py${{ matrix.python-version }}
|
|
|
|
- name: Check cache hit
|
|
id: check-cache-hit
|
|
run: |
|
|
echo "cache-hit=${{ steps.restore-dependencies.outputs.cache-hit }}"
|
|
echo "cache-matched-key=${{ steps.restore-dependencies.outputs.cache-matched-key }}"
|
|
cache_hit=${{ steps.restore-dependencies.outputs.cache-primary-key == steps.restore-dependencies.outputs.cache-matched-key }}
|
|
echo "check=$cache_hit" | tee -a ${{ matrix.GITHUB_OUTPUT }}
|
|
|
|
- name: Install dependencies if ignore caching or no cache hit
|
|
if: |
|
|
steps.check-ignore-cache.outputs.check == 'true' ||
|
|
steps.check-cache-hit.outputs.check != 'true'
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install -U --upgrade-strategy eager -e .[dev]
|
|
|
|
- name: New dependencies cache for key ${{ steps.restore-dependencies.outputs.cache-primary-key }}
|
|
if: |
|
|
steps.check-ignore-cache.outputs.check != 'true' &&
|
|
steps.check-cache-hit.outputs.check != 'true'
|
|
uses: actions/cache/save@v3
|
|
with:
|
|
path: ${{ env.pythonLocation }}
|
|
key: ${{ steps.restore-dependencies.outputs.cache-primary-key }}
|
|
|
|
- name: Test with pytest
|
|
run: |
|
|
pip show pytest
|
|
pytest
|