-
Notifications
You must be signed in to change notification settings - Fork 2
add dependency-update workflow template (fixes #683) #756
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from 5 commits
fdf9333
67e8357
e764019
c9c53e6
c05e242
cea77fd
9844688
454f20e
49145b9
bf38243
b59c5b5
85c89d2
a882d41
eec5503
4bb47a9
a4c95e3
8ec9d68
7ee7359
9e18007
ee5f3ab
6f64290
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,93 @@ | ||
| name: Dependency Update | ||
|
Rimsha2535 marked this conversation as resolved.
ArBridgeman marked this conversation as resolved.
|
||
|
|
||
| on: | ||
| schedule: | ||
| # Every Monday at 03:00 UTC | ||
| - cron: "0 3 * * 1" | ||
| workflow_dispatch: | ||
| workflow_call: | ||
|
|
||
| jobs: | ||
| dependency-update: | ||
| name: Dependency Update | ||
| runs-on: "ubuntu-24.04" | ||
| permissions: | ||
| contents: write | ||
| pull-requests: write | ||
|
|
||
| steps: | ||
| - name: Check out Repository | ||
| id: check-out-repository | ||
| uses: actions/checkout@v6 | ||
| with: | ||
| fetch-depth: 0 | ||
|
|
||
| - name: Set up Python & Poetry Environment | ||
| id: set-up-python-and-poetry-environment | ||
| uses: exasol/python-toolbox/.github/actions/python-environment@v6 | ||
| with: | ||
| python-version: "3.10" | ||
| poetry-version: "2.3.0" | ||
|
|
||
| - name: Audit Dependencies | ||
|
ckunki marked this conversation as resolved.
|
||
| id: audit-dependencies | ||
| run: | | ||
| poetry run -- nox -s dependency:audit | tee vulnerabilities.json | ||
|
ArBridgeman marked this conversation as resolved.
|
||
| LENGTH=$(jq 'length' vulnerabilities.json) | ||
| echo "count=$LENGTH" >> "$GITHUB_OUTPUT" | ||
|
|
||
| - name: Update Dependencies | ||
| id: update-dependencies | ||
| if: steps.audit-dependencies.outputs.count > 0 | ||
|
ArBridgeman marked this conversation as resolved.
|
||
| run: poetry update | ||
|
|
||
| - name: Check for poetry.lock Changes | ||
| id: check-for-poetry-lock-changes | ||
| if: steps.audit-dependencies.outputs.count > 0 | ||
| run: | | ||
| if git diff --quiet -- poetry.lock; then | ||
| echo "changed=false" >> "$GITHUB_OUTPUT" | ||
| else | ||
| echo "changed=true" >> "$GITHUB_OUTPUT" | ||
| fi | ||
|
|
||
| - name: Configure git | ||
| id: configure-git | ||
| if: steps.check-for-poetry-lock-changes.outputs.changed == 'true' | ||
| run: | | ||
| git config --global user.email "opensource@exasol.com" | ||
| git config --global user.name "Automatic Dependency Updater" | ||
|
|
||
| - name: Create branch | ||
| id: create-branch | ||
| if: steps.check-for-poetry-lock-changes.outputs.changed == 'true' && github.ref == 'refs/heads/main' | ||
| run: | | ||
| branch_name="dependency-update/$(date "+%Y%m%d%H%M%S")" | ||
|
Rimsha2535 marked this conversation as resolved.
Outdated
|
||
| echo "Creating branch $branch_name" | ||
| git checkout -b "$branch_name" | ||
|
ArBridgeman marked this conversation as resolved.
Outdated
|
||
|
|
||
| - name: Commit changes & push | ||
|
Rimsha2535 marked this conversation as resolved.
Outdated
|
||
| id: publish-branch | ||
| if: steps.check-for-poetry-lock-changes.outputs.changed == 'true' && startsWith(github.ref, 'refs/heads/') | ||
| run: | | ||
| branch_name=$(git rev-parse --abbrev-ref HEAD) | ||
| git add poetry.lock | ||
| git commit --message "Update poetry.lock" | ||
|
Rimsha2535 marked this conversation as resolved.
Outdated
|
||
| git push --set-upstream origin "$branch_name" | ||
|
|
||
| - name: Create pull request | ||
|
Rimsha2535 marked this conversation as resolved.
Outdated
|
||
| id: create-pr | ||
| if: steps.check-for-poetry-lock-changes.outputs.changed == 'true' && github.ref == 'refs/heads/main' | ||
| env: | ||
| GH_TOKEN: ${{ github.token }} | ||
| run: |- | ||
| BASE_BRANCH=$(gh repo view --json defaultBranchRef -q .defaultBranchRef.name) | ||
|
|
||
| gh pr create \ | ||
| --base "$BASE_BRANCH" \ | ||
| --title "Update poetry.lock" \ | ||
|
ArBridgeman marked this conversation as resolved.
Outdated
|
||
| --body "Automated dependency update for \`poetry.lock\`. | ||
|
|
||
| This PR was created by the dependency update workflow after running: | ||
| - \`poetry run -- nox -s dependency:audit\` | ||
| - \`poetry update\`" | ||
|
ArBridgeman marked this conversation as resolved.
|
||
| Original file line number | Diff line number | Diff line change | ||
|---|---|---|---|---|
| @@ -0,0 +1,92 @@ | ||||
| name: Dependency Update | ||||
|
|
||||
| on: | ||||
| schedule: | ||||
| # Every Monday at 03:00 UTC | ||||
| - cron: "0 3 * * 1" | ||||
| workflow_dispatch: | ||||
|
ArBridgeman marked this conversation as resolved.
|
||||
|
|
||||
| jobs: | ||||
| dependency-update: | ||||
| name: Dependency Update | ||||
| runs-on: "(( os_version ))" | ||||
| permissions: | ||||
| contents: write | ||||
| pull-requests: write | ||||
|
|
||||
| steps: | ||||
| - name: Check out Repository | ||||
| id: check-out-repository | ||||
| uses: actions/checkout@v6 | ||||
| with: | ||||
| fetch-depth: 0 | ||||
|
|
||||
| - name: Set up Python & Poetry Environment | ||||
| id: set-up-python-and-poetry-environment | ||||
| uses: exasol/python-toolbox/.github/actions/python-environment@v6 | ||||
| with: | ||||
| python-version: "(( minimum_python_version ))" | ||||
| poetry-version: "(( dependency_manager_version ))" | ||||
|
|
||||
| - name: Audit Dependencies | ||||
| id: audit-dependencies | ||||
| run: | | ||||
| poetry run -- nox -s dependency:audit | tee vulnerabilities.json | ||||
| LENGTH=$(jq 'length' vulnerabilities.json) | ||||
| echo "count=$LENGTH" >> "$GITHUB_OUTPUT" | ||||
|
|
||||
| - name: Update Dependencies | ||||
| id: update-dependencies | ||||
| if: steps.audit-dependencies.outputs.count > 0 | ||||
| run: poetry update | ||||
|
|
||||
| - name: Check for poetry.lock Changes | ||||
| id: check-for-poetry-lock-changes | ||||
| if: steps.audit-dependencies.outputs.count > 0 | ||||
| run: | | ||||
| if git diff --quiet -- poetry.lock; then | ||||
| echo "changed=false" >> "$GITHUB_OUTPUT" | ||||
| else | ||||
| echo "changed=true" >> "$GITHUB_OUTPUT" | ||||
| fi | ||||
|
|
||||
| - name: Configure git | ||||
| id: configure-git | ||||
| if: steps.check-for-poetry-lock-changes.outputs.changed == 'true' | ||||
| run: | | ||||
| git config --global user.email "opensource@exasol.com" | ||||
| git config --global user.name "Automatic Dependency Updater" | ||||
|
|
||||
| - name: Create branch | ||||
| id: create-branch | ||||
| if: steps.check-for-poetry-lock-changes.outputs.changed == 'true' && github.ref == 'refs/heads/main' | ||||
|
ArBridgeman marked this conversation as resolved.
Outdated
|
||||
| run: | | ||||
| branch_name="dependency-update/$(date "+%Y%m%d%H%M%S")" | ||||
| echo "Creating branch $branch_name" | ||||
| git checkout -b "$branch_name" | ||||
|
|
||||
| - name: Commit changes & push | ||||
| id: publish-branch | ||||
| if: steps.check-for-poetry-lock-changes.outputs.changed == 'true' && startsWith(github.ref, 'refs/heads/') | ||||
| run: | | ||||
| branch_name=$(git rev-parse --abbrev-ref HEAD) | ||||
| git add poetry.lock | ||||
| git commit --message "Update poetry.lock" | ||||
| git push --set-upstream origin "$branch_name" | ||||
|
|
||||
| - name: Create pull request | ||||
| id: create-pr | ||||
| if: steps.check-for-poetry-lock-changes.outputs.changed == 'true' && github.ref == 'refs/heads/main' | ||||
| env: | ||||
| GH_TOKEN: ${{ github.token }} | ||||
| run: | | ||||
| BASE_BRANCH=$(gh repo view --json defaultBranchRef -q .defaultBranchRef.name) | ||||
|
|
||||
| gh pr create \ | ||||
|
Rimsha2535 marked this conversation as resolved.
Outdated
|
||||
| --base "$BASE_BRANCH" \ | ||||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. not needed
Suggested change
|
||||
| --title "Update poetry.lock" \ | ||||
| --body "Automated dependency update for \`poetry.lock\`. | ||||
|
|
||||
| This PR was created by the dependency update workflow after running: | ||||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. not needed
Suggested change
|
||||
| - \`poetry run -- nox -s dependency:audit\` | ||||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. not needed
Suggested change
|
||||
| - \`poetry update\`" | ||||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. not needed
Suggested change
|
||||
Uh oh!
There was an error while loading. Please reload this page.