From f954b4c03d65aee296a8b16820f6f74b8770206f Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Wed, 30 Nov 2022 21:04:33 +0200 Subject: [PATCH] [v8.5.x] Automate docs publishing steps (#59563) * Automate docs publishing steps (#59550) Signed-off-by: Jack Baldry Signed-off-by: Jack Baldry (cherry picked from commit 10a83714c87253c2951e97913cc2a2e61801eb41) * Remove dependency on test job (#59575) Signed-off-by: Jack Baldry Signed-off-by: Jack Baldry * Fix release_branch_regexp (#59590) Apparently the non-capturing group was incorrect. I verified the logic in a branch in grafana-github-actions: https://github.com/grafana/grafana-github-actions/compare/jdb/2022-11-prove-grafana-regexp-behaves-correctly?expand=1 Signed-off-by: Jack Baldry Signed-off-by: Jack Baldry Signed-off-by: Jack Baldry Co-authored-by: Jack Baldry --- .../publish-technical-documentation-next.yml | 30 ++++++++++ ...ublish-technical-documentation-release.yml | 60 +++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 .github/workflows/publish-technical-documentation-next.yml create mode 100644 .github/workflows/publish-technical-documentation-release.yml diff --git a/.github/workflows/publish-technical-documentation-next.yml b/.github/workflows/publish-technical-documentation-next.yml new file mode 100644 index 00000000000..9e060ee0b8b --- /dev/null +++ b/.github/workflows/publish-technical-documentation-next.yml @@ -0,0 +1,30 @@ +name: "publish-technical-documentation-next" + +on: + push: + branches: + - "main" + paths: + - "docs/sources/**" + - "packages/grafana-*/**" + workflow_dispatch: +jobs: + sync: + runs-on: "ubuntu-latest" + steps: + - name: "Checkout Grafana repo" + uses: "actions/checkout@v3" + + - name: "Clone website-sync Action" + run: "git clone --single-branch --no-tags --depth 1 -b master https://grafanabot:${{ secrets.GH_BOT_ACCESS_TOKEN }}@github.com/grafana/website-sync ./.github/actions/website-sync" + + - name: "Publish to website repository (next)" + uses: "./.github/actions/website-sync" + id: "publish-next" + with: + repository: "grafana/website" + branch: "master" + host: "github.com" + github_pat: "${{ secrets.GH_BOT_ACCESS_TOKEN }}" + source_folder: "docs/sources" + target_folder: "content/docs/grafana/next" diff --git a/.github/workflows/publish-technical-documentation-release.yml b/.github/workflows/publish-technical-documentation-release.yml new file mode 100644 index 00000000000..e8864acfcb4 --- /dev/null +++ b/.github/workflows/publish-technical-documentation-release.yml @@ -0,0 +1,60 @@ +name: "publish-technical-documentation-release" + +on: + push: + branches: + - v[0-9]+.[0-9]+.[0-9]+ + tags: + - v[0-9]+.[0-9]+.[0-9]+ + paths: + - "docs/sources/**" + - "packages/grafana-*/**" + workflow_dispatch: +jobs: + sync: + runs-on: "ubuntu-latest" + steps: + - name: "Checkout Grafana repo" + uses: "actions/checkout@v3" + with: + fetch-depth: 0 + + - name: "Checkout Actions library" + uses: "actions/checkout@v3" + with: + repository: "grafana/grafana-github-actions" + path: "./actions" + + - name: "Install Actions from library" + run: "npm install --production --prefix ./actions" + + - name: "Determine if there is a matching release tag" + id: "has-matching-release-tag" + uses: "./actions/has-matching-release-tag" + with: + ref_name: "${{ github.ref_name }}" + release_tag_regexp: "^v(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$" + release_branch_regexp: "^v(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.x$" + + - name: "Determine technical documentation version" + if: "steps.has-matching-release-tag.outputs.bool == 'true'" + uses: "./actions/docs-target" + id: "target" + with: + ref_name: "${{ github.ref_name }}" + + - name: "Clone website-sync Action" + if: "steps.has-matching-release-tag.outputs.bool == 'true'" + run: "git clone --single-branch --no-tags --depth 1 -b master https://grafanabot:${{ secrets.GH_BOT_ACCESS_TOKEN }}@github.com/grafana/website-sync ./.github/actions/website-sync" + + - name: "Publish to website repository (release)" + if: "steps.has-matching-release-tag.outputs.bool == 'true'" + uses: "./.github/actions/website-sync" + id: "publish-release" + with: + repository: "grafana/website" + branch: "master" + host: "github.com" + github_pat: "${{ secrets.GH_BOT_ACCESS_TOKEN }}" + source_folder: "docs/sources" + target_folder: "content/docs/grafana/${{ steps.target.outputs.target }}"