diff --git a/.github/actions/setup-poetry/action.yml b/.github/actions/setup-poetry/action.yml new file mode 100644 index 00000000..7b6bd6df --- /dev/null +++ b/.github/actions/setup-poetry/action.yml @@ -0,0 +1,38 @@ +name: "setup-poetry" +description: "Composite action to setup poetry." + +inputs: + poetry-version: + required: false + description: "The poetry version to use" + default: "1.5.1" + python-version: + required: false + description: "The python version to use" + default: "3.11" + +runs: + using: "composite" + steps: + - name: Install Poetry + run: pipx install poetry==${{ inputs.poetry-version }} + shell: bash + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: ${{ inputs.python-version }} + cache: poetry + cache-dependency-path: poetry.lock + + - name: Set Poetry environment + run: poetry env use ${{ inputs.python-version }} + shell: bash + + - name: Install dependencies + run: poetry install --no-root + shell: bash + + - name: Install dependencies + run: poetry install --no-interaction --no-root + shell: bash \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c0e6183b..817d803e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,15 +33,9 @@ jobs: steps: - name: Checkout Code uses: actions/checkout@v3 - - - name: Set up python - uses: actions/setup-python@v4 - - - name: Install Poetry - uses: snok/install-poetry@v1 - - name: Install dependencies - run: poetry install --no-interaction --no-root + - name: Set up poetry and install + uses: ./.github/actions/setup-poetry - name: Run checks run: make lint @@ -55,17 +49,11 @@ jobs: steps: - name: Check out uses: actions/checkout@v3 - - - name: Set up python - uses: actions/setup-python@v4 + + - name: Set up poetry and install + uses: ./.github/actions/setup-poetry with: python-version: ${{ matrix.python-version }} - - name: Install Poetry - uses: snok/install-poetry@v1 - - - name: Install dependencies - run: poetry install --no-interaction --no-root - - name: Run tests run: make test