-
Notifications
You must be signed in to change notification settings - Fork 2
130 lines (103 loc) · 4.01 KB
/
build_book.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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
name: Build Book with Babel Quarto
on:
pull_request:
branches:
- crowdin_integration
push:
branches:
- crowdin_integration
workflow_dispatch:
env:
PR_AUTHOR_EMAIL: molunorichie@gmail.com
PR_AUTHOR_NAME: Richie
NEW_BRANCH: build_book-
DESTINATION_BRANCH: book
CONFIG_PATH: ./config.json # Path to config file for jsquarto
jobs:
build_book:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [16.x]
steps:
- name: Checkout
uses: actions/checkout@v3
with:
persist-credentials: true
- name: Extract config variables from config file
id: read_config
run: |
JSON_FILE="$CONFIG_PATH"
LANGUAGES=$(echo "$JSON_CONTENT" | jq -r '.languages | join(",")')
OUTPUT_DIR=$(echo "$JSON_CONTENT" | jq -r '.outputDirectory')
SOURCE_DIR=$(echo "$JSON_CONTENT" | jq -r '.sourceDirectory')
TUTORIALS_DIR=$(echo "$JSON_CONTENT" | jq -r '.tutorialDirectory')
echo "LANGUAGES=$LANGUAGES" >> $GITHUB_ENV
echo "OUTPUT_DIR=$OUTPUT_DIR" >> $GITHUB_ENV
echo "SOURCE_DIR=$SOURCE_DIR" >> $GITHUB_ENV
echo "TUTORIALS_DIR=$TUTORIALS_DIR" >> $GITHUB_ENV
- name: Set New Branch Name
id: set_branch
run: echo "NEW_BRANCH=${NEW_BRANCH}$(date +'%Y-%m-%d-%H-%M-%S')" >> $GITHUB_ENV
- name: Setup R
run: |
sudo apt-get update
sudo apt-get install r-base
sudo apt-get install r-base-core
sudo apt-get install libssl-dev libcurl4-openssl-dev libxml2-dev
# Writeable directory is needed for R packages installation, installing to the default library path is not allowed
- name: Create writable directory for R packages
run: |
mkdir ./my_R_library
chmod u+w ./my_R_library
- name: Setup quarto
uses: quarto-dev/quarto-actions/setup@v2
- name: Install PAK
run: Rscript -e "install.packages('pak', lib='./my_R_library')"
- name: Install Babel quarto
run: Rscript -e ".libPaths(c('./my_R_library', .libPaths())); library(pak); pak::pak('ropensci-review-tools/babelquarto', lib='./my_R_library')"
- name: Setup Node.js
uses: actions/setup-node@v2
with:
node-version: 16.x
- name: Install dependencies
run: npm install
- name: Prepare crowdin translations
run: npm run fix:crowdin_files languages="$LANGUAGES"
- name: Build book
run: |
Rscript -e ".libPaths(c('./my_R_library', .libPaths())); library(babelquarto); project_dir <- 'docs'; babelquarto::render_book(project_path = project_dir)"
- name: Fix built book
run: |
tree docs
npm run fix:all languages="$LANGUAGES"
- name: Commit changes
run: |
git config --global user.email $PR_AUTHOR_EMAIL
git config --global user.name $PR_AUTHOR_NAME
git checkout -b $NEW_BRANCH
git status
git add .
git commit -m "Build book with babelquarto"
git push origin $NEW_BRANCH
- name: Create Pull Request
id: create_pr
uses: repo-sync/pull-request@v2
with:
source_branch: ${{ env.NEW_BRANCH }}
destination_branch: ${{ env.DESTINATION_BRANCH }}
pr_title: New book build with babelquarto
pr_body: |
:crown: *An automated PR*
Automated PR build book with babel-quarto
_Created by [repo-sync/pull-request](https://github.com/repo-sync/pull-request)_
pr_label: "auto-pr"
pr_draft: false
pr_allow_empty: true
token: ${{ secrets.PAT_TOKEN }}
- name: Approve pull Request
if: steps.create_pr.outputs.pull_request_number
uses: hmarr/auto-approve-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
pull-request-number: ${{ steps.create_pr.outputs.pull_request_number }}