ci: use create-pull-request action for cli sync #79
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: sync-cli-docs | |
| on: | |
| schedule: | |
| # Run daily at 02:00 UTC | |
| - cron: '0 2 * * *' | |
| workflow_dispatch: | |
| inputs: | |
| version: | |
| description: "(optional) Docker CLI version - defaults to docker_ce_version in hugo.yaml" | |
| required: false | |
| default: "" | |
| pull_request: | |
| paths: | |
| - '.github/workflows/sync-cli-docs.yml' | |
| - 'hack/sync-cli-docs.sh' | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| jobs: | |
| sync-cli-docs: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - | |
| name: Checkout docs repo | |
| uses: actions/checkout@v5 | |
| with: | |
| fetch-depth: 0 | |
| - | |
| name: Get version from hugo.yaml | |
| id: get-version | |
| run: | | |
| if [ -n "${{ inputs.version }}" ]; then | |
| VERSION="${{ inputs.version }}" | |
| else | |
| VERSION=$(grep "docker_ce_version:" hugo.yaml | awk '{print $2}' | tr -d '"') | |
| fi | |
| # TODO(vvoland): Remove this after 29.2.0 is released | |
| # VERSION=v${VERSION} | |
| VERSION=60f06cb2df3df36ddfb531c1dae8c6fa96e5f9e7 | |
| echo "version=$VERSION" >> "$GITHUB_OUTPUT" | |
| echo "Docker CLI version: **$VERSION**" | tee -a "$GITHUB_STEP_SUMMARY" | |
| - | |
| name: Checkout docker/cli repo | |
| uses: actions/checkout@v5 | |
| with: | |
| repository: docker/cli | |
| path: cli-source | |
| ref: ${{ steps.get-version.outputs.version }} | |
| fetch-depth: 0 | |
| - | |
| name: Git config | |
| run: | | |
| git config user.name "github-actions[bot]" | |
| git config user.email "41898282+github-actions[bot]@users.noreply.github.com" | |
| - | |
| name: Run sync script | |
| id: sync | |
| run: | | |
| set +e | |
| ./hack/sync-cli-docs.sh HEAD cli-source | |
| EXIT_CODE=$? | |
| set -e | |
| if [ $EXIT_CODE -eq 0 ]; then | |
| echo "Changes detected - syncing CLI docs" >> "$GITHUB_STEP_SUMMARY" | |
| elif [ $EXIT_CODE -eq 100 ]; then | |
| echo "No changes to sync - CLI docs are up to date" >> "$GITHUB_STEP_SUMMARY" | |
| else | |
| echo "::error::Script failed with exit code $EXIT_CODE" | |
| exit $EXIT_CODE | |
| fi | |
| - | |
| name: Create Pull Request | |
| id: cpr | |
| uses: peter-evans/create-pull-request@v7 | |
| with: | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| branch: bot/sync-cli-docs-${{ steps.get-version.outputs.version }} | |
| base: main | |
| delete-branch: true | |
| add-paths: | | |
| data/engine-cli/*.yaml | |
| title: "cli: sync docs with docker/cli" | |
| body: | | |
| ## Summary | |
| Automated sync of CLI documentation from docker/cli repository. | |
| **CLI version**: ${{ steps.get-version.outputs.version }} | |
| reviewers: "@engine" | |
| - | |
| name: Check outputs | |
| if: ${{ steps.cpr.outputs.pull-request-number }} | |
| run: | | |
| echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}" | |
| echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}" |