app services #19
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: Translator to JA (Japanese) | |
on: | |
push: | |
branches: | |
- master | |
paths-ignore: | |
- 'scripts/**' | |
- '.gitignore' | |
- '.github/**' | |
workflow_dispatch: | |
concurrency: ja | |
permissions: | |
id-token: write | |
contents: write | |
jobs: | |
run-translation: | |
runs-on: ubuntu-latest | |
environment: prod | |
env: | |
LANGUAGE: Japanese | |
BRANCH: ja | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 #Needed to download everything to be able to access the master & language branches | |
- name: Set up Python | |
uses: actions/setup-python@v2 | |
with: | |
python-version: 3.12 | |
- name: Install python dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip3 install openai tqdm tiktoken | |
# Install Rust and Cargo | |
- name: Install Rust and Cargo | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
override: true | |
# Install mdBook and Plugins | |
- name: Install mdBook and Plugins | |
run: | | |
cargo install mdbook | |
cargo install mdbook-alerts | |
cargo install mdbook-reading-time | |
cargo install mdbook-pagetoc | |
cargo install mdbook-tabs | |
cargo install mdbook-codename | |
- name: Update & install wget & translator.py | |
run: | | |
sudo apt-get update | |
sudo apt-get install wget -y | |
cd scripts | |
rm -f translator.py | |
wget https://raw.githubusercontent.com/carlospolop/hacktricks-cloud/master/scripts/translator.py | |
cd .. | |
- name: Download language branch #Make sure we have last version | |
run: | | |
git config --global user.name 'Translator' | |
git config --global user.email 'github-actions@github.com' | |
git checkout "$BRANCH" | |
git pull | |
git checkout master | |
- name: Run translation script on changed files | |
run: | | |
echo "Starting translations" | |
echo "Commit: $GITHUB_SHA" | |
# Export the OpenAI API key as an environment variable | |
export OPENAI_API_KEY=${{ secrets.OPENAI_API_KEY }} | |
# Run the translation script on each changed file | |
git diff --name-only HEAD~1 | grep -v "SUMMARY.md" | while read -r file; do | |
if echo "$file" | grep -qE '\.md$'; then | |
echo -n "$file , " >> /tmp/file_paths.txt | |
else | |
echo "Skipping $file" | |
fi | |
done | |
echo "Translating $(cat /tmp/file_paths.txt)" | |
python scripts/translator.py --language "$LANGUAGE" --branch "$BRANCH" --api-key "$OPENAI_API_KEY" -f "$(cat /tmp/file_paths.txt)" -t 3 | |
# Push changes to the repository | |
- name: Commit and push changes | |
run: | | |
git checkout "$BRANCH" | |
git add -A | |
git commit -m "Translated $BRANCH files" || true | |
git push --set-upstream origin "$BRANCH" | |
# Build the mdBook | |
- name: Build mdBook | |
run: MDBOOK_BOOK__LANGUAGE=$BRANCH mdbook build | |
# Login in AWs | |
- name: Configure AWS credentials using OIDC | |
uses: aws-actions/configure-aws-credentials@v3 | |
with: | |
role-to-assume: ${{ secrets.AWS_ROLE_ARN }} | |
aws-region: us-east-1 | |
# Sync the build to S3 | |
- name: Sync to S3 | |
run: aws s3 sync ./book s3://hacktricks-cloud/$BRANCH --delete |