@@ -33,23 +33,92 @@ jobs:
3333 echo "ERROR: Invalid branch name ${{ github.ref_name }}!"
3434 exit 1
3535 fi
36- - name : Configure Hugo
36+
37+ - name : Install dependencies
38+ run : make deps
39+
40+ - name : Build out all versions
3741 run : |
42+ set -x
43+
44+ function setBaseUrl() {
3845 if [[ "${{ github.ref_name }}" == "main" ]]
3946 then
4047 hugo_root_path=docs/staging/dev
4148 elif [[ "${{ github.ref_name }}" == "latest" ]]
4249 then
43- hugo_root_path="docs/latest"
50+ hugo_root_path="docs/latest"
4451 elif [[ "${{ endsWith(github.ref_name, '-build') }}" == "true" ]]
4552 then
4653 hugo_root_path=`echo docs/version/${{ github.ref_name }} | sed 's/-build$//'`
4754 else
4855 hugo_root_path=docs/staging/${{ github.ref_name }}
4956 fi \
5057 && sed -i "s#baseURL = \"https://redis.io\"#baseURL = \"https://redis.io/$hugo_root_path\"#g" config.toml
51- - name : Install dependencies and run Hugo
52- run : make all
58+ }
59+
60+ setBaseUrl
61+ kubernetes_versions=($(find content/operate/kubernetes/ -maxdepth 1 -type d -regex ".*[0-9-]" | awk -F/ '{print $NF}'))
62+ rs_versions=($(find content/operate/rs/ -maxdepth 1 -type d -regex ".*[0-9-]" | awk -F/ '{print $NF}'))
63+
64+ # build latest
65+ for version in "${kubernetes_versions[@]}"; do
66+ rm -r "content/operate/kubernetes/${version}"
67+ done
68+ for version in "${rs_versions[@]}"; do
69+ rm -r "content/operate/rs/${version}"
70+ done
71+ make all
72+
73+ git checkout .
74+
75+ # build all versions
76+ for version in "${kubernetes_versions[@]}"; do
77+
78+ setBaseUrl
79+
80+ # for each version, remove all other versions before building
81+ versions_to_remove=($(echo "${kubernetes_versions[@]}" "${version}" | tr ' ' '\n' | sort | uniq -u))
82+ for version_to_remove in "${versions_to_remove[@]}"; do
83+ rm -r "content/operate/kubernetes/${version_to_remove}"
84+ done
85+
86+ cp -r "content/operate/kubernetes/${version}"/* content/operate/kubernetes/
87+ rm -r "content/operate/kubernetes/${version}"
88+ sed -i 's/id="versionSelectorKubernetesValue" class="version-selector-control">latest/id="versionSelectorKubernetesValue" class="version-selector-control">v'"${version}"'/' layouts/partials/docs-nav.html
89+ sed -i 's/linkTitle: '"${version}"'/linkTitle: Redis for Kubernetes/' content/operate/kubernetes/_index.md
90+
91+ # inject replace command in meta-links to make sure editURL and issuesURL point to right version
92+ sed -i "11i \{\{ \$gh_file = replaceRE \`\^operate\/kubernetes\/\` \"operate\/kubernetes\/$version\/\" \$gh_file }}" layouts/partials/meta-links.html
93+
94+ hugo -d "kubernetes-${version}"
95+
96+ git checkout .
97+ done
98+
99+ for version in "${rs_versions[@]}"; do
100+
101+ setBaseUrl
102+
103+ # for each version, remove all other versions before building
104+ versions_to_remove=($(echo "${rs_versions[@]}" "${version}" | tr ' ' '\n' | sort | uniq -u))
105+ for version_to_remove in "${versions_to_remove[@]}"; do
106+ rm -r "content/operate/rs/${version_to_remove}"
107+ done
108+
109+ cp -r "content/operate/rs/${version}"/* content/operate/rs/
110+ rm -r "content/operate/rs/${version}"
111+ sed -i 's/id="versionSelectorRsValue" class="version-selector-control">latest/id="versionSelectorRsValue" class="version-selector-control">v'"${version}"'/' layouts/partials/docs-nav.html
112+ sed -i 's/linkTitle: '"${version}"'/linkTitle: Redis Software/' content/operate/rs/_index.md
113+
114+ # inject replace command in meta-links to make sure editURL and issuesURL point to right version
115+ sed -i "11i \{\{ \$gh_file = replaceRE \`\^operate\/rs\/\` \"operate\/rs\/$version\/\" \$gh_file }}" layouts/partials/meta-links.html
116+
117+ hugo -d "rs-${version}"
118+
119+ git checkout .
120+ done
121+
53122 - name : List client examples
54123 run : ls "${{ github.workspace }}/examples"
55124 - name : List files to be published
@@ -80,5 +149,15 @@ jobs:
80149 bucket_path=staging/${{ github.ref_name }}
81150 fi \
82151 && ./google-cloud-sdk/bin/gsutil -m rsync -r -c -j html -d ${{ github.workspace }}/public gs://$BUCKET/$bucket_path
152+
153+ if [[ "${{ github.ref_name }}" == "latest" ]]
154+ then
155+ versioned_builds=($(find . -type d -regex ".*[0-9-]" -maxdepth 1 | sed -E 's/^.\///'))
156+ for versioned_build in "${versioned_builds[@]}"; do
157+ product=$(grep -Eo '[a-zA-Z]+' <<< $versioned_build)
158+ gsutil -m rsync -r -c -j html -d "${{ github.workspace }}/${versioned_build}/operate/${product}" "gs://${BUCKET}/${versioned_build}/operate/${product}"
159+ done
160+ fi
161+
83162 - name : End
84163 run : echo "This job's status is ${{ job.status }}."
0 commit comments