-
Notifications
You must be signed in to change notification settings - Fork 2.4k
81 lines (78 loc) · 3.32 KB
/
publish-non-release-website-updates.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
#
# 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 non-release website updates
on:
push:
branches:
- main
paths:
- 'site/**' # Trigger only for changes to files in the site/ folder
- '!site/_docs/**' # except for files in the site/_docs/ folder
- 'site/_docs/history.md' # unless the file is site/_docs/history.md
- 'site/_docs/howto.md' # or site/_docs/howto.md
- 'site/_docs/powered_by.md' # or site/_docs/powered_by.md
jobs:
cherry-pick-to-site:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
ref: site
- name: Cherry pick the commit to site
run: |
git config user.email ${{ github.actor }}@users.noreply.github.com
git config user.name ${{ github.actor }}
git cherry-pick --strategy=recursive -X theirs $GITHUB_SHA
if [ $? -neq 0 ]; then
git status | sed -n 's/deleted by us://p' | xargs git add
git cherry-pick --continue --no-edit
fi
git push origin site
publish-website:
runs-on: ubuntu-latest
needs: cherry-pick-to-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: 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 -- javadocAggregate/ # Restore the javadoc
git checkout -- javadocAggregate/
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