fix #193
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: 🚧 Website MkDocs | |
on: | |
pull_request: | |
branches: | |
- master | |
paths: | |
- 'website/**' | |
- '.github/workflows/website.yml' | |
push: | |
branches: | |
- master | |
- website* | |
paths: | |
- 'website/**' | |
- '.github/workflows/website.yml' | |
workflow_dispatch: # useful for testing tx pushes | |
workflow_call: | |
permissions: | |
contents: write | |
defaults: | |
run: | |
working-directory: website | |
jobs: | |
website: | |
runs-on: ubuntu-latest | |
# Skip if this job was scheduled and the runner belongs to a fork (i.e. forks have no use for this action) | |
if: (github.event_name == 'schedule' && github.repository == 'opengisch/QField-docs') || (github.event_name != 'schedule') | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.10' | |
- name: Install Python requirements | |
run: pip install -r requirements.txt | |
- name: Install Python requirements insiders | |
run: pip install -r requirements-insiders.txt | |
env: | |
GH_USER_INSIDER: ${{ secrets.GH_USER_INSIDER }} | |
GH_TOKEN_INSIDER: ${{ secrets.GH_TOKEN_INSIDER }} | |
- name: Install Transifex client | |
run: | | |
curl -OL https://github.com/transifex/cli/releases/download/v1.6.10/tx-linux-amd64.tar.gz | |
tar -xvzf tx-linux-amd64.tar.gz | |
- name: Extract translatable content from mkdocs.yml config | |
run: ./scripts/mkdocs_tx.py create_source | |
- name: Configure Transifex | |
run: scripts/transifex_utils.py | |
env: | |
TX_TOKEN: ${{ secrets.TX_TOKEN }} | |
- name: Push source files to Transifex | |
if: ${{ github.event_name == 'push' }} | |
run: ./tx push | |
env: | |
TX_TOKEN: ${{ secrets.TX_TOKEN }} | |
- name: Pull translations from Transifex | |
if: ${{ github.event_name == 'push' || github.event.pull_request.head.repo.full_name == 'opengisch/signalo' && github.actor != 'dependabot[bot]' }} | |
run: | | |
./tx pull --translations --all --minimum-perc 10 | |
./tx status | |
env: | |
TX_TOKEN: ${{ secrets.TX_TOKEN }} | |
- name: Translate Mkdocs config | |
if: ${{ github.event_name == 'push' || github.event.pull_request.head.repo.full_name == 'opengisch/signalo' && github.actor != 'dependabot[bot]' }} | |
run: | | |
./scripts/mkdocs_tx.py -s fr update_config | |
if [[ git diff --exit-code mkdocs.yml ]]; then | |
echo "no change mkdocs.yml" | |
else | |
echo "detected changes in mkdocs.yml" | |
if [[ ${{ github.event_name }} == "pull_request" ]]; then | |
# on PR push to the same branch | |
gh pr checkout ${{ github.event.pull_request.number }} | |
git add mkdocs.yml | |
git commit -m "Update mkdocs.yml translation" | |
git push | |
else | |
# on push create a pull request | |
git checkout ${{ github.head_ref }} | |
git checkout -b update-mkdocs-tx | |
git commit -m "Update mkdocs.yml translation" | |
gh pr create -B update-mkdocs-tx -H update-mkdocs-tx --title 'Update mkdocs translations' | |
fi | |
fi | |
gh pr create -B base_branch -H branch_to_merge --title 'Merge branch_to_merge into base_branch' --body 'Created by Github action' | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build documentation | |
run: mkdocs build | |
- name: Datamodel Documentation | |
run: | | |
LATEST_RELEASE=$(curl --silent "https://api.github.com/repos/opengisch/signalo/releases/latest" | jq -r .tag_name) | |
wget -q https://github.com/opengisch/signalo/releases/download/${LATEST_RELEASE}/signalo-${LATEST_RELEASE}-model-documentation.zip | |
unzip -q signalo-${LATEST_RELEASE}-model-documentation.zip | |
cp -r model-documentation site/ | |
- uses: actions/upload-artifact@v4 | |
if: ${{ github.event_name == 'pull_request' }} | |
with: | |
name: website | |
path: website/site | |
if-no-files-found: error | |
- name: Deploy to GitHub Pages | |
if: ${{ github.event_name == 'push' }} | |
run: mkdocs gh-deploy --force |