kolnovel #44
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: Theme auto label | |
on: | |
issues: | |
types: [labeled] | |
jobs: | |
auto-label: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check if label is "Source Request" | |
id: label_check | |
run: | | |
LABEL_NAME=$(jq --raw-output .label.name "$GITHUB_EVENT_PATH") | |
if [[ "$LABEL_NAME" == "Source Request" ]]; then | |
echo "source_request=true" >> $GITHUB_OUTPUT | |
else | |
echo "source_request=false" >> $GITHUB_OUTPUT | |
echo "# ❌ Skipping: label is not Source request" >> $GITHUB_STEP_SUMMARY | |
fi | |
- name: Get Source Request URL | |
if: steps.label_check.outputs.source_request == 'true' | |
id: get_url | |
run: | | |
ISSUE_BODY=$(jq --raw-output .issue.body "$GITHUB_EVENT_PATH") | |
URL=$(echo "$ISSUE_BODY" | sed -n '/### Source link/,+2p' | sed '1,2d' | tr -d '[:space:]') | |
echo "URL=$URL" >> $GITHUB_OUTPUT | |
echo "Using URL: \`$URL\`" >> $GITHUB_STEP_SUMMARY | |
- name: Check if URL is valid | |
if: steps.label_check.outputs.source_request == 'true' | |
id: url_check | |
env: | |
URL: ${{ steps.get_url.outputs.URL }} | |
run: | | |
if [[ -z "$URL" ]]; then | |
echo "url_valid=false" >> $GITHUB_OUTPUT | |
echo "# ❌ Error: URL not found" >> $GITHUB_STEP_SUMMARY | |
exit 1 | |
else | |
if curl --output /dev/null --silent --head --fail "$URL"; then | |
echo "url_valid=true" >> $GITHUB_OUTPUT | |
else | |
echo "url_valid=false" >> $GITHUB_OUTPUT | |
echo "# ❌ Error: URL is not valid or site is down" >> $GITHUB_STEP_SUMMARY | |
exit 1 | |
fi | |
fi | |
- name: Get base URL | |
if: steps.url_check.outputs.url_valid == 'true' | |
id: get_base_url | |
env: | |
URL: ${{ steps.get_url.outputs.URL }} | |
run: | | |
BASE_URL=$(echo "$URL" | sed 's/https\?:\/\///' | cut -d'/' -f1) | |
echo "BASE_URL=$BASE_URL" >> $GITHUB_OUTPUT | |
echo "Using base URL: \`$BASE_URL\`" >> $GITHUB_STEP_SUMMARY | |
- name: Check Madara theme | |
if: steps.url_check.outputs.url_valid == 'true' | |
id: check_madara | |
env: | |
BASE_URL: ${{ steps.get_base_url.outputs.BASE_URL }} | |
run: | | |
if curl --output /dev/null --silent --head --fail "https://$BASE_URL/wp-content/themes/madara/style.css"; then | |
echo "madara=true" >> $GITHUB_OUTPUT | |
echo "# ✅ Madara theme found" >> $GITHUB_STEP_SUMMARY | |
elif curl --output /dev/null --silent --head --fail "http://$BASE_URL/wp-content/themes/madara/style.css"; then | |
echo "madara=true" >> $GITHUB_OUTPUT | |
echo "# ✅ Madara theme found" >> $GITHUB_STEP_SUMMARY | |
else | |
echo "madara=false" >> $GITHUB_OUTPUT | |
fi | |
- name: Check lighnovelwp theme | |
if: steps.url_check.outputs.url_valid == 'true' | |
id: check_lighnovelwp | |
env: | |
BASE_URL: ${{ steps.get_base_url.outputs.BASE_URL }} | |
run: | | |
if curl --output /dev/null --silent --head --fail "https://$BASE_URL/wp-content/themes/lightnovel/style.css"; then | |
echo "lighnovelwp=true" >> $GITHUB_OUTPUT | |
echo "# ✅ Lighnovelwp theme found" >> $GITHUB_STEP_SUMMARY | |
elif curl --output /dev/null --silent --head --fail "http://$BASE_URL/wp-content/themes/lightnovel/style.css"; then | |
echo "lighnovelwp=true" >> $GITHUB_OUTPUT | |
echo "# ✅ Lighnovelwp theme found" >> $GITHUB_STEP_SUMMARY | |
else | |
echo "lighnovelwp=false" >> $GITHUB_OUTPUT | |
fi | |
- name: Check if site has multiple themes | |
if: steps.url_check.outputs.url_valid == 'true' | |
id: check_multiple_themes | |
env: | |
MADARA: ${{ steps.check_madara.outputs.madara }} | |
LIGHNOVELWP: ${{ steps.check_lighnovelwp.outputs.lighnovelwp }} | |
run: | | |
if [[ "$MADARA" == "true" && "$LIGHNOVELWP" == "true" ]]; then | |
echo "multiple_themes=true" >> $GITHUB_OUTPUT | |
echo "# ❌ Error: Site has multiple themes" >> $GITHUB_STEP_SUMMARY | |
exit 1 | |
else | |
echo "multiple_themes=false" >> $GITHUB_OUTPUT | |
fi | |
- name: Get issue number | |
if: steps.url_check.outputs.url_valid == 'true' | |
id: get_issue_number | |
run: | | |
GITHUB_ISSUE_NUMBER=$(jq --raw-output .issue.number "$GITHUB_EVENT_PATH") | |
echo "GITHUB_ISSUE_NUMBER=$GITHUB_ISSUE_NUMBER" >> $GITHUB_OUTPUT | |
- name: Add label | |
if: steps.check_multiple_themes.outputs.multiple_themes == 'false' | |
env: | |
MADARA: ${{ steps.check_madara.outputs.madara }} | |
LIGHNOVELWP: ${{ steps.check_lighnovelwp.outputs.lighnovelwp }} | |
GITHUB_ISSUE_NUMBER: ${{ steps.get_issue_number.outputs.GITHUB_ISSUE_NUMBER }} | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
REPO: ${{ github.repository }} | |
run: | | |
if [[ "$MADARA" == "true" ]]; then | |
gh issue edit $GITHUB_ISSUE_NUMBER --add-label "Theme: Madara" -R $REPO | |
elif [[ "$LIGHNOVELWP" == "true" ]]; then | |
gh issue edit $GITHUB_ISSUE_NUMBER --add-label "Theme: Lighnovelwp" -R $REPO | |
else | |
echo "# No theme found" >> $GITHUB_STEP_SUMMARY | |
fi |