-
Notifications
You must be signed in to change notification settings - Fork 2
134 lines (108 loc) · 3.88 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
130
131
132
133
134
name: Build Book with Babel Quarto
on:
pull_request:
branches:
- crowdin_integration
push:
branches:
- crowdin_integration
workflow_dispatch:
env:
NEW_BRANCH: build_book-
jobs:
build_book:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [16.x]
env:
CONFIG_PATH: ./config.json
steps:
- name: Checkout
uses: actions/checkout@v3
with:
persist-credentials: true
- name: Read CONFIG file
id: read_config
run: |
JSON_FILE="$CONFIG_PATH"
if [ -f "JSON_FILE" ]; then
echo "CONFIG_PATH=$CONFIG_PATH"
JSON_CONTENT=$(cat "$JSON_FILE")
JSON_CONTENT="${JSON_CONTENT//'%'/'%25'}"
JSON_CONTENT="${JSON_CONTENT//$'\n'/'%0A'}"
JSON_CONTENT="${JSON_CONTENT//$'\r'/'%0D'}"
echo "LANGUAGES=${JSON_CONTENT.languages}" >> $GITHUB_ENV
echo "::set-output name=JSON_CONTENT::$JSON_CONTENT";
else
echo "JSON file not found at $CONFIG_PATH"
exit 1
fi
- name: Use CONFIG variables from file
run: |
echo "${{env.LANGUAGES}}"
echo "${{ steps.read_config.outputs.JSON_CONTENT }}"
echo "${{fromJson(steps.set_var.outputs.JSON_CONTENT).languages}}"
- 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
- name: Create writable directory
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=en,ar
- 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=en,ar
- name: Commit changes
run: |
git config --global user.email "molunorichie@gmail.com"
git config --global user.name "Richie"
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: build_crowdin_integration
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_reviewer: "@RealRichi3"
pr_assignee: "RealRichi3"
pr_label: "auto-pr"
pr_draft: false
pr_allow_empty: true
token: ${{ secrets.PAT_TOKEN }}
- name: Pull request number
run: echo "Pull Request Number - ${{ steps.create_pr.outputs.pull_request_number }}"
id: pr_number