129 lines
4.7 KiB
YAML
129 lines
4.7 KiB
YAML
name: Sync Repo
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
schedule:
|
|
- cron: '38 */12 * * *'
|
|
|
|
jobs:
|
|
sync:
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
contents: write
|
|
actions: write # needed to call other workflows
|
|
steps:
|
|
- name: Checkout your repository
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
ref: main
|
|
repository: ivancarlosti/copenlight
|
|
clean: true
|
|
persist-credentials: true
|
|
|
|
- name: Reset Git remote
|
|
run: |
|
|
git remote remove origin || true
|
|
git remote add origin https://github.com/ivancarlosti/copenlight.git
|
|
git remote -v
|
|
|
|
- name: Download CopenhagenTheme content (from master)
|
|
run: |
|
|
mkdir -p /tmp/copenhagen_temp
|
|
cd /tmp/copenhagen_temp
|
|
git clone --branch master https://github.com/zendesk/copenhagen_theme.git
|
|
echo "== Checking manifest.json version =="
|
|
MANIFEST="/tmp/copenhagen_temp/copenhagen_theme/manifest.json"
|
|
if [ ! -f "$MANIFEST" ]; then
|
|
echo "No manifest.json file found, aborting sync."
|
|
exit 0
|
|
fi
|
|
cat "$MANIFEST"
|
|
VERSION=$(jq -r '.version // empty' "$MANIFEST")
|
|
if [ -z "$VERSION" ]; then
|
|
echo "No version defined in manifest.json, aborting sync."
|
|
exit 0
|
|
fi
|
|
if echo "$VERSION" | grep -i 'beta'; then
|
|
echo "Version is beta ($VERSION), aborting sync."
|
|
exit 0
|
|
fi
|
|
echo "Version is $VERSION. Proceeding with sync."
|
|
rsync -av \
|
|
--exclude='.github' \
|
|
--exclude='.git' \
|
|
--exclude='README.md' \
|
|
--exclude='LICENSE' \
|
|
/tmp/copenhagen_temp/copenhagen_theme/ "$GITHUB_WORKSPACE/"
|
|
|
|
- name: Debug manifest.json in workspace
|
|
run: |
|
|
echo "= manifest.json in your repo after sync ="
|
|
cat "$GITHUB_WORKSPACE/manifest.json" || echo "manifest.json missing!"
|
|
|
|
- name: Modify manifest.json
|
|
run: |
|
|
echo "== Updating manifest.json with custom name and author =="
|
|
MANIFEST="$GITHUB_WORKSPACE/manifest.json"
|
|
if [ -f "$MANIFEST" ]; then
|
|
jq '.name = "CopenLight" | .author = "Ivan Carlos"' "$MANIFEST" > "$MANIFEST.tmp" && mv "$MANIFEST.tmp" "$MANIFEST"
|
|
echo "Updated manifest.json:"
|
|
cat "$MANIFEST"
|
|
else
|
|
echo "manifest.json not found!"
|
|
exit 1
|
|
fi
|
|
|
|
- name: Append custom CSS from template
|
|
run: |
|
|
STYLE_CSS="$GITHUB_WORKSPACE/style.css"
|
|
CUSTOM_CSS="$GITHUB_WORKSPACE/custom/style.css.template"
|
|
if [ -f "$STYLE_CSS" ] && [ -f "$CUSTOM_CSS" ]; then
|
|
echo "== Appending custom CSS from template to style.css =="
|
|
echo "" >> "$STYLE_CSS"
|
|
echo "/* ### BEGIN part to custom style from template ### */" >> "$STYLE_CSS"
|
|
cat "$CUSTOM_CSS" >> "$STYLE_CSS"
|
|
echo "/* ### END part to custom style from template ### */" >> "$STYLE_CSS"
|
|
echo "Custom CSS appended successfully."
|
|
else
|
|
echo "Either style.css or style.css.template not found!"
|
|
exit 1
|
|
fi
|
|
|
|
- name: Append custom JS from template
|
|
run: |
|
|
SCRIPT_JS="$GITHUB_WORKSPACE/script.js"
|
|
CUSTOM_JS="$GITHUB_WORKSPACE/custom/script.js.template"
|
|
if [ -f "$SCRIPT_JS" ] && [ -f "$CUSTOM_JS" ]; then
|
|
echo "== Appending custom JS from template to script.js =="
|
|
echo "" >> "$SCRIPT_JS"
|
|
echo "/* ### BEGIN part to custom JS from template ### */" >> "$SCRIPT_JS"
|
|
cat "$CUSTOM_JS" >> "$SCRIPT_JS"
|
|
echo "/* ### END part to custom JS from template ### */" >> "$SCRIPT_JS"
|
|
echo "Custom JS appended successfully."
|
|
else
|
|
echo "Either script.js or script.js.template not found!"
|
|
exit 1
|
|
fi
|
|
|
|
- name: Cleanup temp files
|
|
run: rm -rf /tmp/copenhagen_temp
|
|
|
|
- name: Commit changes
|
|
id: commit_step
|
|
run: |
|
|
cd "$GITHUB_WORKSPACE"
|
|
git config --global user.email "ivan@ivancarlos.com.br"
|
|
git config --global user.name "ivancarlosti"
|
|
git add .
|
|
if git diff-index --quiet HEAD --; then
|
|
echo "No changes to commit"
|
|
echo "changes_committed=false" >> $GITHUB_OUTPUT
|
|
else
|
|
git commit -m "Sync CopenhagenTheme content [▶️]"
|
|
echo "Commit created"
|
|
git push https://${{ github.actor }}:${{ secrets.GITHUB_TOKEN }}@github.com/ivancarlosti/copenlight.git HEAD:main
|
|
echo "Push successful"
|
|
echo "changes_committed=true" >> $GITHUB_OUTPUT
|
|
fi
|