-
Notifications
You must be signed in to change notification settings - Fork 1.9k
ci: parallelize the mdbook build <language> process #2772
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
dcd361d
8a4d79d
1921543
121cca3
436f84b
eb4ecca
7120c33
bee9ae1
b2de3cc
a512b67
968b7dd
33f148f
758505a
7b84b06
4525929
33bd1a8
4392e6b
bef01c4
23b9247
7c50b36
0eabe54
35ebe18
49da39b
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,31 +3,43 @@ name: Publish | |
# See also TRANSLATIONS.md. | ||
|
||
on: | ||
pull_request: | ||
push: | ||
branches: | ||
- main | ||
workflow_dispatch: | ||
|
||
permissions: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this needs to be re-added before merging |
||
contents: read | ||
pages: write | ||
id-token: write | ||
|
||
# Allow one concurrent deployment | ||
concurrency: | ||
group: pages | ||
cancel-in-progress: true | ||
|
||
env: | ||
CARGO_TERM_COLOR: always | ||
# Update the language picker in index.hbs to link new languages. | ||
LANGUAGES: ar bn da de el es fa fr id it ja ko pl pt-BR ro ru tr uk vi zh-CN zh-TW | ||
|
||
jobs: | ||
publish: | ||
environment: | ||
name: github-pages | ||
url: ${{ steps.deployment.outputs.page_url }} | ||
create-translation: | ||
strategy: | ||
matrix: | ||
language: | ||
- "en" | ||
- "ar" | ||
- "bn" | ||
- "da" | ||
- "de" | ||
- "el" | ||
- "es" | ||
- "fa" | ||
- "fr" | ||
- "id" | ||
- "it" | ||
- "ja" | ||
- "ko" | ||
- "pl" | ||
- "pt-BR" | ||
- "ro" | ||
- "ru" | ||
- "tr" | ||
- "uk" | ||
- "vi" | ||
- "zh-CN" | ||
- "zh-TW" | ||
Comment on lines
+20
to
+42
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is fine (and easy to sort!), but just in case you hadn't thought of it, language: ["en", "ar", ...]` would be equivalent. |
||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout | ||
|
@@ -50,14 +62,46 @@ jobs: | |
uses: ./.github/workflows/install-mdbook | ||
|
||
- name: Build course in English | ||
if: matrix.language == 'en' | ||
run: .github/workflows/build.sh en book | ||
|
||
- name: Build all translations | ||
- name: Build ${{ matrix.language }} translation | ||
if: matrix.language != 'en' | ||
run: | | ||
for po_lang in ${{ env.LANGUAGES }}; do | ||
.github/workflows/build.sh $po_lang book/$po_lang | ||
mv book/$po_lang/html book/html/$po_lang | ||
done | ||
.github/workflows/build.sh ${{ matrix.language }} book/${{ matrix.language }} | ||
mkdir book/html | ||
mv book/${{ matrix.language }}/html book/html/${{ matrix.language }} | ||
|
||
- name: Upload translation | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: comprehensive-rust-${{ matrix.language }} | ||
path: book/ | ||
|
||
publish: | ||
runs-on: ubuntu-latest | ||
needs: create-translation | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
|
||
- name: Update Rust | ||
run: rustup update | ||
|
||
- name: Install Gettext | ||
run: | | ||
sudo apt update | ||
sudo apt install gettext | ||
Comment on lines
+92
to
+94
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This should now use the new |
||
|
||
- name: Install mdbook | ||
uses: ./.github/workflows/install-mdbook | ||
|
||
- name: Download all translations | ||
uses: actions/download-artifact@v4 | ||
with: | ||
path: book/ | ||
pattern: comprehensive-rust-* | ||
merge-multiple: true | ||
|
||
- name: Build translation report | ||
run: i18n-report report book/html/translation-report.html po/*.po | ||
|
@@ -69,14 +113,21 @@ jobs: | |
for file in synced-po/*.po; do msgmerge --update $file synced-po/messages.pot ; done | ||
i18n-report report book/html/synced-translation-report.html synced-po/*.po | ||
|
||
- name: Setup Pages | ||
uses: actions/configure-pages@v5 | ||
|
||
- name: Upload artifact | ||
uses: actions/upload-pages-artifact@v4 | ||
# TODO: remove this before merging into main. This is just for verification of the build result while developing this workflow. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Just a comment here so we don't forget. |
||
- name: Upload all translations (for verification) | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
path: book/html | ||
|
||
- name: Deploy to GitHub Pages | ||
id: deployment | ||
uses: actions/deploy-pages@v4 | ||
michael-kerscher marked this conversation as resolved.
Show resolved
Hide resolved
|
||
name: comprehensive-rust-all | ||
path: book/ | ||
# TODO: uncomment the following lines before merging into main. This is removed for development purposes. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Another comment to ensure we don't forget. |
||
# - name: Setup Pages | ||
# uses: actions/configure-pages@v5 | ||
|
||
# - name: Upload artifact | ||
# uses: actions/upload-pages-artifact@v4 | ||
# with: | ||
# path: book/html | ||
|
||
# - name: Deploy to GitHub Pages | ||
# id: deployment | ||
# uses: actions/deploy-pages@v4 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this needs to be removed before merging