This guide helps you quickly get started with the automated CI/CD workflows for the docker-webdav project.
Before the workflows can run successfully, you need to configure the following secrets in your GitHub repository settings:
- Go to your repository on GitHub
- Navigate to Settings → Secrets and variables → Actions
- Add the following repository secrets:
| Secret Name | Description | How to Get It |
|---|---|---|
DOCKER_HUB_USERNAME |
Your Docker Hub username | Your Docker Hub account username |
DOCKER_HUB_ACCESS_TOKEN |
Docker Hub access token | Create at Docker Hub → Account Settings → Security |
Note: GITHUB_TOKEN is automatically provided by GitHub Actions and does not need to be configured.
Once configured, the following workflows will run automatically:
- When: Every day at 00:00 UTC
- What: Checks if a new Caddy version is available
- Result: Creates a pull request if an update is found
- When: Every Monday at 00:00 UTC
- What: Checks for updates to caddy-webdav and caddy-dns/cloudflare plugins
- Result: Creates a GitHub issue with plugin status
- When: On push to main branch (when version.txt, Dockerfile, or Caddyfile-* change)
- What: Builds Docker images for multiple platforms
- Result: Pushes to Docker Hub and creates GitHub releases
You can manually trigger any workflow to test it:
- Go to Actions tab in your repository
- Select the workflow you want to run
- Click Run workflow button
- Select the branch (usually main)
- Click Run workflow
# Check for Caddy updates
gh workflow run check-updates.yml
# Check plugin status
gh workflow run check-plugin-updates.yml
# Build and publish Docker image
gh workflow run docker-publish.yml-
Daily Check Runs (00:00 UTC)
check-updates.yml runs ↓ Detects new version (e.g., 2.9.2) ↓ Creates PR: "chore: update Caddy to 2.9.2" -
Review and Merge
- Review the automatically created PR
- Check the release notes link in the PR description
- Merge the PR when ready
-
Automatic Build Triggers
PR merged to main ↓ docker-publish.yml runs automatically ↓ Builds images for amd64 and arm64 ↓ Pushes to Docker Hub: - bipy/webdav:2.9.2 - bipy/webdav:latest ↓ Creates GitHub Release v2.9.2
-
Monday Check Runs (00:00 UTC)
check-plugin-updates.yml runs ↓ Checks plugin repositories ↓ Creates/updates GitHub issue with status -
Review Issue
- Check the created issue for plugin updates
- No action required unless noted
- Issue is informational only
Problem: Error: Cannot perform an interactive login from a non TTY device
Solution:
- Verify
DOCKER_HUB_USERNAMEis set correctly - Verify
DOCKER_HUB_ACCESS_TOKENis a valid token (not your password) - Regenerate access token if needed
Problem: Error: Resource not accessible by integration
Solution:
- Check that GitHub Actions has write permissions
- Go to Settings → Actions → General
- Under "Workflow permissions", select "Read and write permissions"
Problem: Build fails for arm64 platform
Solution:
- This is expected in some runners
- The workflow is configured to continue on error
- At least amd64 build should succeed
Problem: New Caddy version released but no PR created
Solution:
- Manually run the workflow from Actions tab
- Check workflow run logs for errors
- Verify GitHub API rate limits haven't been exceeded
# List recent workflow runs
gh run list --workflow=check-updates.yml --limit 5
# View specific run details
gh run view <run-id>
# View run logs
gh run view <run-id> --logVisit https://hub.docker.com/r/bipy/webdav/tags to see published images
Visit your repository's Releases page to see created releases
Edit the cron schedule in the workflow file:
on:
schedule:
- cron: '0 0 * * *' # Daily at midnight UTCCommon cron patterns:
0 */6 * * *- Every 6 hours0 0 * * 1- Weekly on Monday0 0 1 * *- Monthly on the 1st
-
Update
Dockerfileto include new plugin:RUN xcaddy build \ --with github.com/caddy-dns/cloudflare \ --with github.com/mholt/caddy-webdav \ --with github.com/your-org/your-plugin -
Update
check-plugin-updates.ymlto monitor it:- name: Check your-plugin run: | # Add similar check as other plugins
- Review PRs Promptly: Automated PRs should be reviewed within a few days
- Monitor Issues: Check plugin status issues for potential breaking changes
- Test Updates: Consider testing new versions in a staging environment first
- Keep Secrets Updated: Rotate Docker Hub tokens periodically
- Monitor Rate Limits: GitHub API has rate limits; don't trigger workflows too frequently
For issues or questions:
- Check IMPLEMENTATION.md for detailed technical documentation
- Review .github/workflows/README.md for workflow details
- Open an issue in the repository
- Configure the required secrets
- Manually trigger
check-updates.ymlto test the setup - Monitor the Actions tab for successful runs
- Review and merge any created PRs
- Verify Docker images are published correctly
Enjoy your automated Docker WebDAV builds! 🚀