Skip to content

Dependency Updates

Dependency Updates #3

Workflow file for this run

name: Dependency Updates
on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
permissions:
contents: write
pull-requests: write
actions: write
jobs:
update:
runs-on: ubuntu-latest
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup coursier cache
uses: coursier/cache-action@v6.4
- name: Setup Scala CLI
uses: VirtusLab/scala-cli-setup@v1.5
- name: Check if branch exists on remote
id: branch-check
run: |
if git ls-remote --exit-code --heads origin dependency-update; then
echo "branch_exists=true" >> $GITHUB_ENV
else
echo "branch_exists=false" >> $GITHUB_ENV
fi
- name: Track or create branch
run: |
if [ "${{ env.branch_exists }}" = "true" ]; then
git fetch origin dependency-update:dependency-update
git checkout dependency-update
else
git checkout -b dependency-update
fi
- name: Update dependencies
id: update-deps
run: |
scala-cli --power dependency-update src --all
git config --global user.name "Mark Rudolph"
git config --global user.email "mark@k8ty.app"
if git commit -am "Update dependencies"; then
echo "changes_exists=true" >> $GITHUB_ENV
else
echo "changes_exists=false" >> $GITHUB_ENV
fi
- name: Push changes
if: env.changes_exists == 'true'
run: |
git push -u origin dependency-update
- name: Create a Pull Request
if: env.changes_exists == 'true'
run: |
gh pr create \
--title "Dependency Updates" \
--body "Dependency updates from scala-cli" \
--head dependency-update \
--base main || echo "Pull request already exists or no changes to push"
- name: Set up Docker
if: env.changes_exists == 'true' && false # URemove && false for Docker support (e.g. test containers)
uses: docker/setup-buildx-action@v3
- name: PR Tests
if: env.changes_exists == 'true'
run: |
if scala-cli --power test src; then
echo "tests_passed=true" >> $GITHUB_ENV
else
echo "tests_passed=true" >> $GITHUB_ENV
fi
- name: Merge PR
if: env.tests_passed == 'true'
run: |
gh pr comment --body "PR tests passed! Auto merging..."
gh pr merge --squash --delete-branch --body "Auto-merged dependency updates"
- name: Close PR
if: env.changes_exists == 'true' && env.tests_passed == 'false'
run: |
gh pr comment --body "PR tests failed :cry: Closing PR..."
gh pr close --delete-branch --body "PR tests failed"