forked from grafana/tempo
-
Notifications
You must be signed in to change notification settings - Fork 0
100 lines (91 loc) · 3.64 KB
/
website-versioned.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
name: publish_docs
on:
push:
# Sync on commit to release branches, or stable vx.y.z tag is pushed.
branches:
- release-*
tags:
- 'v[0-9]+.[0-9]+.[0-9]+'
paths:
- 'docs/sources/tempo/**'
workflow_dispatch:
jobs:
test:
# only run in grafana/tempo.
if: github.repository == 'grafana/tempo'
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Build Website
run: docker run -v ${PWD}/docs/sources/tempo:/hugo/content/docs/tempo/latest --rm grafana/docs-base:latest make prod
sync:
# only run in grafana/tempo.
if: github.repository == 'grafana/tempo'
runs-on: ubuntu-latest
needs: test
steps:
- name: Checkout this repo
uses: actions/checkout@v4
with:
# Fetch tags
fetch-depth: 0
- name: Checkout Actions library
uses: actions/checkout@v4
with:
repository: "grafana/grafana-github-actions"
path: ./actions
- name: Install Actions from library
run: npm install --production --prefix ./actions
# ----------------------------------------
# Ensure this is a final release tag, or
# branch with .0 tag already.
# Remaining steps are skipped if not.
# ----------------------------------------
- name: Check for matching release tag
id: has-tag
uses: ./actions/has-matching-release-tag
with:
ref_name: ${{ github.ref_name }}
release_tag_regexp: "^v(\\d+)\\.(\\d+)\\.(\\d+)$"
release_branch_regexp: "^release-v(\\d+)\\.(\\d+)$"
# ----------------------------------------
# Extract semver from branch or tag name
# Returns in the format v1.2
# ----------------------------------------
- if: steps.has-tag.outputs.bool == 'true'
name: Extract semver
uses: ./actions/docs-target
id: target
with:
ref_name: ${{ github.ref_name }}
# ----------------------------------------
# Clone and run the website sync action
# ----------------------------------------
- if: steps.has-tag.outputs.bool == 'true'
# WEBSITE_SYNC_TOKEN is a fine-grained GitHub Personal Access Token that expires.
# It must be regenerated in the grafanabot GitHub account and requires a Grafana organization
# GitHub administrator to update the organization secret.
# The IT helpdesk can update the organization secret.
run: "git clone --single-branch --no-tags --depth 1 -b master https://grafanabot:${{ secrets.WEBSITE_SYNC_TOKEN }}@github.com/grafana/website-sync ./.github/actions/website-sync"
- if: steps.has-tag.outputs.bool == 'true'
name: publish-to-git
uses: ./.github/actions/website-sync
id: publish
with:
repository: grafana/website
branch: master
host: github.com
# PUBLISH_TO_WEBSITE_TOKEN is a fine-grained GitHub Personal Access Token that expires.
# It must be regenerated in the grafanabot GitHub account and requires a Grafana organization
# GitHub administrator to update the organization secret.
# The IT helpdesk can update the organization secret.
github_pat: "grafanabot:${{ secrets.PUBLISH_TO_WEBSITE_TOKEN }}"
source_folder: docs/sources/tempo
# target is v1.2.x
target_folder: content/docs/tempo/${{ steps.target.outputs.target }}.x
allow_no_changes: true
- shell: bash
run: |
test -n "${{ steps.publish.outputs.commit_hash }}"
test -n "${{ steps.publish.outputs.working_directory }}"