-
Notifications
You must be signed in to change notification settings - Fork 113
V1 for Automation Website translations Issues Generation Ref: Issue 325 #407
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
Closed
Closed
Changes from all commits
Commits
Show all changes
66 commits
Select commit
Hold shift + click to select a range
9b88baf
feat: added compare script
sergioarmgpl a6e0596
feat: mod script
sergioarmgpl ce5a4f1
feat: added script and workflow to test
sergioarmgpl 88f6395
feat: mod in Check outdated content workflow
sergioarmgpl dfc6753
feat: removed workflow if
sergioarmgpl 233e426
feat: adding change folder for website content
sergioarmgpl 1712be6
feat: updated print pending translations step
sergioarmgpl e5d7cc6
feat: printing files to translate per language
sergioarmgpl 6d0912f
feat: added steps to print files to translate
sergioarmgpl 7d301a0
feat: TEST change
sergioarmgpl 8c78b72
feat: update print files
sergioarmgpl ed60bd5
feat: updated workflow
sergioarmgpl abc8783
feat: added paths for files to translate
sergioarmgpl 80821b2
feat: mod workflow for escape characters
sergioarmgpl e3e3270
feat: testing PR
Dianmz 9bb0198
feat: File changed
Dianmz 0a4b458
adding base
Dianmz d930b40
feat: Adding assigneeses
Dianmz 4105b29
feat: Adding labels
Dianmz 0cabee6
fix: files file fix
Dianmz 884c5c3
Merge pull request #10 from Dianmz/main
sergioarmgpl 61c5e0e
feat: changed PR config
sergioarmgpl 5a249e9
feat: updated push rules
sergioarmgpl fca7dd5
feat: added workflow if
sergioarmgpl 1ea8f71
feat: workflow changes
sergioarmgpl cbf9a1f
feat: added branches conf
sergioarmgpl 6a888eb
feat: update base parameter
sergioarmgpl c35d4b4
update TAG TL information
leonardpahlke 08ef813
add a link to project to the projects README
leonardpahlke bd688ae
translation(german): Add `de` subfolder in website content directory
thelooter dd92179
translation(german): Add German to config.toml
thelooter c8538d0
translation(german): Correct spelling of Cloud Native in Hugo Config
thelooter c7765b8
translation(german): Translate about/ folder to german
thelooter 406911e
docs: add Green Scraper project
guidemetothemoon 5965447
chore: add project GH links on website
guidemetothemoon 53e8006
add claire to wg comms chair list
leonardpahlke 4aee161
Add German translation for TAG Environmental Sustainability _index.md…
rissh 6ac048e
chore: update Green Scraper project info
b270ede
feat: update last step
sergioarmgpl 9bfb70e
feat: test
sergioarmgpl 57a1f04
feat: added issue generation part
sergioarmgpl cea1344
feat: updated workflow
sergioarmgpl a7aaefc
feat: update Issue step
sergioarmgpl ebc41e8
feat: updated file extension
sergioarmgpl 099ef96
feat: updated labels format
sergioarmgpl 27c6e3c
feat: updated labels
sergioarmgpl ecb59a6
feat: changed labels format
sergioarmgpl 58af090
feat: removed extra labels
sergioarmgpl 18cf043
Merging last changes from the workflow to translate into different la…
Dianmz 9a18dce
feat: removed changes on files to test workflow, and merging Dianmz c…
sergioarmgpl 604a36d
feat: sync changes
sergioarmgpl b4ae477
Merge branch 'cncf:main' into main
sergioarmgpl 0d89518
feat: added specific groups for translate issues
sergioarmgpl 1f9f198
feat: updated assignees
sergioarmgpl 7500f1b
feat: removed ASSIGNEES parameter
sergioarmgpl 016e24f
feat: testing assignees
sergioarmgpl 7667ff2
feat: testing assignees
sergioarmgpl 20afc36
feat: hard coded assignee
sergioarmgpl 8569fcf
feat: removed unnecessary variables
sergioarmgpl 26b422a
feat: changed lang validation
sergioarmgpl 196fd42
feat: added documentation comments to the check-outdated-content.yml …
sergioarmgpl 4ef3b36
chore: changed to workflow_dispatch in check-outdated-content
sergioarmgpl ebb6e55
feat: readed pr option for workflow
sergioarmgpl eb69488
Merge branch 'cncf:main' into main
sergioarmgpl 3277e6d
Update .github/workflows/check-outdated-content.yml
guidemetothemoon cf3a8a7
fix: add GH token permissions in check-outdated-content.yml
guidemetothemoon File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,170 @@ | ||
# Contribution by Cloud Native Guatemala folks :) | ||
# This workflow will check if a localized content is outdated or not | ||
# by comparing English content in the old branch and the latest branch. | ||
--- | ||
name: Check outdated content | ||
|
||
on: | ||
pull_request: | ||
branches: | ||
- main | ||
workflow_dispatch: | ||
|
||
permissions: | ||
contents: read | ||
issues: write | ||
|
||
jobs: | ||
check-outdated-content: | ||
name: Check outdated content | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 # fetch all history for all tags and branches | ||
- name: Detecting pending translations | ||
shell: bash | ||
run: | | ||
##################################################### | ||
# Set variables to detect pending translations | ||
OUTPUT_DIR="./outdated" | ||
# Directory to compare for pending translations | ||
CONTENT_DIR="website/content" | ||
# Here we should add a new language every time a new one is added e.g: ("es" "zh" "de" "etc") | ||
languages=("es" "zh") | ||
sergioarmgpl marked this conversation as resolved.
Show resolved
Hide resolved
|
||
# This is the base language to use, in this case English will be the base language | ||
base_lang="en" | ||
|
||
cd $CONTENT_DIR | ||
# The following lines create the necessary files to compare | ||
# pending translations compared to the base_lang defined | ||
# This files will contain the list of pending files to translate for each language | ||
for lang in ${languages[@]}; do | ||
touch $lang.txt | ||
done | ||
guidemetothemoon marked this conversation as resolved.
Show resolved
Hide resolved
|
||
# This line create the base language file where the pending | ||
touch $base_lang.txt | ||
|
||
|
||
# Make an output directory where the pending translated files are detected | ||
if [[ ! -e $OUTPUT_DIR ]]; then | ||
mkdir $OUTPUT_DIR | ||
elif [[ ! -d $OUTPUT_DIR ]]; then | ||
echo "$OUTPUT_DIR already exists but is not a directory" 1>&2 | ||
fi | ||
|
||
# This part perform the comparition between the main branch and the PR branch to compare | ||
# and detect pending translations for languages different than English (EN) | ||
LATEST_BRANCH=${GITHUB_REF#refs/} | ||
echo "(DEBUG) LATEST_BRANCH: ${LATEST_BRANCH}" | ||
|
||
# Get the old branch from 'github.base_ref' | ||
# The old branch can be 'upstream/dev-ko' | ||
OLD_BRANCH="origin/${{github.base_ref}}" | ||
echo "(DEBUG) OLD_BRANCH: ${OLD_BRANCH}" | ||
|
||
# This function output a file inside the OUTPUT_DIR that is pending to translate for | ||
# the current supported languages | ||
compare () { | ||
FILE_PATH=$1 | ||
# Actually compare between the old and latest English content and log diff in the file | ||
# This detect | ||
if [[ -f "${FILE_PATH}" ]]; then | ||
# File exists | ||
# Check changes | ||
git diff ${OLD_BRANCH}..${LATEST_BRANCH} -- ${FILE_PATH} > temp.diff | ||
# This detect if something was changed in English (Base Language) | ||
if [[ -s "temp.diff" ]]; then | ||
echo "(DEBUG) ${FILE_PATH} is outdated." | ||
mkdir -p ${OUTPUT_DIR}/${FILE_PATH%/*} | ||
mv temp.diff ${OUTPUT_DIR}/${FILE_PATH} | ||
else | ||
# Detect if the file doesn't exists for the supported languages. This means that the file is | ||
# pending to translate | ||
echo "check if ${FILE_PATH} exist in other languages" | ||
for lang in ${languages[@]}; do | ||
NEW_FILE_PATH=$(echo "${FILE_PATH}" | sed -e "s/${base_lang}\//${lang}\//g") | ||
if [[ ! -e "${NEW_FILE_PATH}" ]]; then | ||
echo "The file ${FILE_PATH} needs to be translated to $lang" | ||
echo ${NEW_FILE_PATH} >> $lang.txt | ||
fi | ||
done | ||
fi | ||
else | ||
echo "(DEBUG) ${FILE_PATH} does not exist." | ||
fi | ||
} | ||
|
||
# Get the list of files in the website for the base language (EN) and output this in files.txt | ||
find $base_lang -iname "*.md" > files.txt | ||
# Sort this file by name the final output is in files.txt | ||
sort files.txt > files_temp.txt;mv files_temp.txt files.txt | ||
# INFILE contains the name of this temporary file | ||
INFILE=files.txt | ||
|
||
# This loop call the function compare and send the file path as a parameter to check if already exists | ||
# in the directory for the supported languages (e.g: website/es, website/zh ) different than English (EN) | ||
while IFS= read -r line | ||
do | ||
compare "$line" | ||
done < "$INFILE" | ||
|
||
# This can be used to support changes for the base language English | ||
find outdated -iname "*.md" | sed -e "s/outdated/website\/content/g" > $base_lang.txt | ||
|
||
- name: Generate content for translation issues | ||
id: to_translate | ||
shell: bash | ||
run: | | ||
# This step generates the md file per language used to create the issue for the | ||
# pending files to translate using the action JasonEtco/create-an-issue@v2 | ||
# also this creates the file for each language defined in the languages variable | ||
CONTENT_DIR="website/content" | ||
cd $CONTENT_DIR | ||
echo "(DEBUG) Current folder: "$(pwd) | ||
languages=("es" "zh") | ||
for lang in ${languages[@]}; do | ||
FILES="" | ||
|
||
# This part autoasign the different groups depending on the language to translate to the | ||
# issue to be created | ||
if [ "$lang" == "es" ]; then | ||
TEAM="Dianmz" | ||
elif [ "$lang" == "zh" ]; then | ||
TEAM="sergioarmgpl" | ||
fi | ||
|
||
# This lines output the file to be used to create the issue for pending translations per language | ||
echo "---" > $lang"_files.md" | ||
echo "title: Pending pages to translate into $lang" >> $lang"_files.md" | ||
echo "assignees: $TEAM" >> $lang"_files.md" | ||
echo 'labels:' >> $lang"_files.md" | ||
echo ' - help wanted' >> $lang"_files.md" | ||
echo ' - translations' >> $lang"_files.md" | ||
echo ' - good first issue' >> $lang"_files.md" | ||
echo ' - issue/tracking' >> $lang"_files.md" | ||
echo "---" >> $lang"_files.md" | ||
echo "Last change by: {{ payload.sender.login }}." >> $lang"_files.md" | ||
echo -e "*Docs to translate for "$lang" language* <br />\n" >> $lang"_files.md" | ||
while IFS= read -r line | ||
do | ||
FILES+="- $line <br />\n" | ||
done < "$lang.txt" | ||
echo -e $FILES >> $lang"_files.md" | ||
done | ||
# Creates the issue of pending files to translate for Spanish language | ||
- uses: JasonEtco/create-an-issue@v2 | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
with: | ||
update_existing: true | ||
filename: website/content/es_files.md | ||
# Creates the issue of pending files to translate for Chinese language | ||
- uses: JasonEtco/create-an-issue@v2 | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
with: | ||
update_existing: true | ||
filename: website/content/zh_files.md | ||
|
This file contains hidden or 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
*.txt | ||
*.diff | ||
outdated/ |
File renamed without changes.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.