Skip to content

Check Dockerfile Updates #2

Check Dockerfile Updates

Check Dockerfile Updates #2

name: Check Dockerfile Updates
on:
schedule:
# Every Monday at 9am UTC
- cron: '0 9 * * 1'
workflow_dispatch: # Allow manual trigger
permissions:
contents: write
pull-requests: write
jobs:
check-updates:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install jq
run: sudo apt-get update && sudo apt-get install -y jq
- name: Check for updates
id: check
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# Run the update script and capture output
./scripts/check-dockerfile-updates.sh --apply 2>&1 | tee updates-output.txt
# Generate PR body markdown
cat > updates.md << 'HEADER'
## Dockerfile Tool Version Updates
This PR was automatically generated by the weekly version check workflow.
### Changes
HEADER
# Check if there are actual changes
if git diff --quiet packages/core/src/docker/Dockerfile; then
echo "updates_available=false" >> $GITHUB_OUTPUT
echo "No updates available." >> updates.md
else
echo "updates_available=true" >> $GITHUB_OUTPUT
# Add diff summary
echo '```diff' >> updates.md
git diff packages/core/src/docker/Dockerfile >> updates.md
echo '```' >> updates.md
# Add the script output
echo "" >> updates.md
echo "### Version Check Output" >> updates.md
echo '```' >> updates.md
cat updates-output.txt >> updates.md
echo '```' >> updates.md
fi
# Add footer
cat >> updates.md << 'FOOTER'
### Testing
- [ ] Review version changes
- [ ] Verify no breaking changes in release notes
- [ ] CI Docker build succeeded
---
*Generated by [dockerfile-updates workflow](https://github.com/${{ github.repository }}/actions/workflows/dockerfile-updates.yml)*
FOOTER
- name: Set up Docker Buildx
if: steps.check.outputs.updates_available == 'true'
uses: docker/setup-buildx-action@v3
- name: Build updated Dockerfile
if: steps.check.outputs.updates_available == 'true'
uses: docker/build-push-action@v6
with:
context: .
file: packages/core/src/docker/Dockerfile
push: false
cache-from: type=gha,scope=opencode-cloud-dockerfile-updates,version=2
cache-to: type=gha,scope=opencode-cloud-dockerfile-updates,mode=max,version=2
- name: Create Pull Request
if: steps.check.outputs.updates_available == 'true'
uses: peter-evans/create-pull-request@v7
with:
token: ${{ secrets.GITHUB_TOKEN }}
title: "chore(docker): update pinned tool versions"
body-path: updates.md
branch: dockerfile-version-updates
commit-message: "chore(docker): update pinned tool versions"
labels: dependencies,docker
delete-branch: true