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