Skip to content

Instantly share code, notes, and snippets.

@blu3r4y
Last active July 29, 2024 12:51
Show Gist options
  • Save blu3r4y/0e316bacca5a55f37acb3258a5465b1b to your computer and use it in GitHub Desktop.
Save blu3r4y/0e316bacca5a55f37acb3258a5465b1b to your computer and use it in GitHub Desktop.
GitHub action to activate a Poetry environment for subsequent steps
name: setup-poetry
on:
push:
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Setup Poetry
run: |
curl -sSL https://install.python-poetry.org | python3 -
echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: Install dependencies
run: poetry install
- name: Active environment
shell: bash
run: |
source $(poetry env info --path)/bin/activate
echo "$VIRTUAL_ENV/bin" >> $GITHUB_PATH
echo "PYTHONHOME=" >> $GITHUB_ENV
@IvanildoBarauna
Copy link

Hi @blu3r4y

I'm happy that I can contribute with others readers using your Gist, thanks.

I have a project that uses exactly this script structure, if you are interested in seeing how this works in the real world, here it is...

https://github.com/IvanildoBarauna/api-to-dataframe
Workflow and line is: https://github.com/IvanildoBarauna/api-to-dataframe/blob/main/.github/workflows/CI.yaml#L25-L30

The following project below also has similar needs, but uses another method with python's "venv"

https://github.com/IvanildoBarauna/ETL-awesome-api

Workflow and line: https://github.com/IvanildoBarauna/ETL-awesome-api/blob/main/.github/workflows/CI-CD.yaml#L28-L36

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment