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 name: Build, publish & deploy
on: on:
workflow_dispatch:
push: push:
branches: branches:
- master - master

View file

@ -1,6 +1,7 @@
name: Test name: Test
on: on:
workflow_dispatch:
workflow_call: workflow_call:
pull_request: pull_request:
branches: [ "master" ] 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 @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" common_args = "-q --allow-unsafe --resolver=backtracking"
if update: if update:
common_args += " --upgrade" common_args += " --upgrade"
@ -30,12 +35,14 @@ def sync_dependencies(ctx: Context, *, update: bool = False):
pty=True, pty=True,
echo=True, echo=True,
) )
ctx.run("pip-sync requirements.txt requirements-dev.txt", pty=True, echo=True) if sync:
sync_dependencies(ctx)
@task @task
def update_dependencies(ctx: Context): def sync_dependencies(ctx: Context):
return sync_dependencies(ctx, update=True) with ctx.cd(BASE_DIR):
ctx.run("pip-sync requirements.txt requirements-dev.txt", pty=True, echo=True)
@task @task