forked from apache/calcite
-
Notifications
You must be signed in to change notification settings - Fork 2
71 lines (68 loc) · 2.69 KB
/
publish-website-on-release.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
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to you under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
name: Publish website on release
on:
push:
tags:
- calcite-[0-9]+.[0-9]+.[0-9]+ # Trigger only when a tag that matches calcite-X.Y.Z is pushed
jobs:
sync-main-site:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
ref: site
- name: Sync main and site branches
run: |
git reset --hard origin/main
git push --force origin site
publish-website:
runs-on: ubuntu-latest
needs: sync-main-site
steps:
- uses: actions/checkout@v3
with:
ref: site
- name: Build site
working-directory: site
run: |
docker compose run -e JEKYLL_UID=$(id -u) -e JEKYLL_GID=$(id -g) build-site
- name: Build javadoc
working-directory: site
run: |
docker compose run generate-javadoc
- name: Push site
working-directory: site/target
env:
CALCITE_WEBSITE_BUILD: ${{ secrets.CALCITE_WEBSITE_BUILD }}
run: |
git config --global init.defaultBranch main
git init # Turn the folder into a git repo
git config url."https://asf-ci-deploy:$CALCITE_WEBSITE_BUILD@github.com/".insteadOf "https://github.com/"
git config user.email ${{ github.actor }}@users.noreply.github.com
git config user.name ${{ github.actor }}
git remote add origin https://github.com/apache/calcite-site
git fetch # Pull from the calcite-site repo
git reset origin/main --soft # Bring in changes from the calcite-site repo, but keep our local changes
git reset -- avatica/ # Restore the avatica site
git checkout -- avatica/
git add .
if ! git diff-index --quiet HEAD; then
git commit -m "Website deployed from calcite@$GITHUB_SHA"
git push origin main
fi