Add update-depedencies workflow

This commit is contained in:
Gabriel Augendre 2023-01-30 16:03:48 +01:00
parent a5dee60e98
commit 2b53a94c4d
4 changed files with 52 additions and 4 deletions

View file

@ -1,6 +1,7 @@
name: Build, publish & deploy
on:
workflow_dispatch:
push:
branches:
- master

View file

@ -1,6 +1,7 @@
name: Test
on:
workflow_dispatch:
workflow_call:
pull_request:
branches: [ "master" ]

View file

@ -0,0 +1,39 @@
name: Update dependencies
on:
workflow_dispatch:
schedule:
- cron: '0 18 * * TUE'
permissions:
pull-requests: write
contents: write
jobs:
update:
name: Update dependencies
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
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
id: create-pull-request
with:
token: ${{ secrets.PERSONAL_TOKEN_PR }}
commit-message: Update dependencies
base: master
branch: update-dependencies
title: Update dependencies
delete-branch: true

View file

@ -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