From 9b7baa6b7791ce14280ae758a7639dcdca30a56b Mon Sep 17 00:00:00 2001 From: Gabriel Augendre Date: Mon, 30 Jan 2023 14:53:44 +0100 Subject: [PATCH] Add workflow to update dependencies --- .github/workflows/update-dependencies.yaml | 36 ++++++++++++++++++++++ tasks.py | 15 ++++++--- 2 files changed, 47 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/update-dependencies.yaml diff --git a/.github/workflows/update-dependencies.yaml b/.github/workflows/update-dependencies.yaml new file mode 100644 index 0000000..c1cdf6a --- /dev/null +++ b/.github/workflows/update-dependencies.yaml @@ -0,0 +1,36 @@ +name: Test + +on: + workflow_dispatch: + schedule: + interval: "weekly" + +permissions: + contents: read + +jobs: + update: + name: Update dependencies + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + ref: master + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.11' + cache: pip + - name: Update dependencies + run: | + pip install pip-tools invoke + invoke update-dependencies --no-sync + - name: Create Pull Request + uses: peter-evans/create-pull-request@v4 + with: + token: ${{ secrets.PERSONAL_TOKEN_PR }} + commit-message: Update dependencies + base: master + branch: update-dependencies + title: Update dependencies + delete-branch: true diff --git a/tasks.py b/tasks.py index 15e37f5..308813f 100644 --- a/tasks.py +++ b/tasks.py @@ -10,7 +10,12 @@ TEST_ENV = {"ENV_FILE": BASE_DIR / "envs" / "test-envs.env"} @task -def sync_dependencies(ctx: Context, *, update: bool = False): +def update_dependencies(ctx: Context, *, sync: bool = True): + return compile_dependencies(ctx, update=True, sync=sync) + + +@task +def compile_dependencies(ctx: Context, *, update: bool = False, sync: bool = False): common_args = "-q --allow-unsafe --resolver=backtracking" if update: common_args += " --upgrade" @@ -30,12 +35,14 @@ def sync_dependencies(ctx: Context, *, update: bool = False): pty=True, echo=True, ) - ctx.run("pip-sync requirements.txt requirements-dev.txt", pty=True, echo=True) + if sync: + sync_dependencies(ctx) @task -def update_dependencies(ctx: Context): - return sync_dependencies(ctx, update=True) +def sync_dependencies(ctx: Context): + with ctx.cd(BASE_DIR): + ctx.run("pip-sync requirements.txt requirements-dev.txt", pty=True, echo=True) @task