Check new request #6
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: Add entry new | |
on: | |
issues: | |
types: [opened, edited] | |
# Stolen from geodes indexer lol | |
jobs: | |
issue_created: | |
name: Issue test | |
if: (!github.event.issue.pull_request && github.event.issue.state == 'open') | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Indexer | |
uses: actions/checkout@v4 | |
with: | |
path: code | |
- name: Checkout Index | |
uses: actions/checkout@v4 | |
with: | |
repository: clicksounds/geode-clicksound | |
path: index | |
- name: Verify User | |
id: verify_user | |
shell: bash | |
run: | | |
echo result=`python3 code/.github/verify.py index $ISSUE_AUTHOR` >> $GITHUB_OUTPUT | |
env: | |
ISSUE_AUTHOR: ${{ github.event.issue.user.login }} | |
- name: Add Entry | |
id: add_entry | |
shell: bash | |
run: | | |
echo has_issues=NO >> $GITHUB_OUTPUT | |
set +e | |
python3 code/.github/issue.py index $ISSUE_AUTHOR > result.txt 2> err.txt | |
RESULT=$? | |
set -e | |
echo "output is" | |
cat result.txt | |
echo "any silly errors?" | |
if [ -f silly_log.txt ]; then | |
cat silly_log.txt | |
fi | |
EOF=$(openssl rand -hex 8) | |
{ | |
echo "issue_output<<$EOF" | |
cat result.txt | |
echo "$EOF" | |
} >> "$GITHUB_OUTPUT" | |
{ | |
echo "issue_err<<$EOF" | |
cat err.txt | |
echo "$EOF" | |
} >> "$GITHUB_OUTPUT" | |
if [ $RESULT -eq 0 ]; then | |
echo push_entry=YES >> $GITHUB_OUTPUT | |
else | |
echo push_entry=NO >> $GITHUB_OUTPUT | |
fi | |
env: | |
ISSUE_AUTHOR: ${{ github.event.issue.user.login }} | |
COMMENT_AUTHOR: ${{ github.event.issue.user.login }} | |
ISSUE_BODY: ${{ github.event.issue.body }} | |
DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }} | |
VERIFY_USER_RESULT: ${{ steps.verify_user.outputs.result }} | |
- name: Push to index | |
shell: bash | |
if: steps.add_entry.outputs.push_entry == 'YES' && steps.verify_user.outputs.result == 'YES' && steps.add_entry.outputs.has_issues == 'NO' | |
working-directory: ${{ github.workspace }}/index | |
run: | | |
git config --local user.email "${{ secrets.GEODE_BOT_EMAIL }}" | |
git config --local user.name "GeodeBot" | |
git add -A | |
git commit -m "Update from $ISSUE_AUTHOR - ${{ steps.add_entry.outputs.mod_id }}" | |
git remote set-url origin "https://GeodeBot:${{ secrets.GEODE_BOT_PUSH_BIN_TOKEN }}@github.com/geode-sdk/mods.git" | |
git push -u origin main | |
env: | |
ISSUE_AUTHOR: ${{ github.event.issue.user.login }} | |
- name: Close because invalid | |
if: steps.add_entry.outputs.issue_err != '' | |
run: gh issue close ${{ github.event.issue.number }} --comment "$BODY" -R "${{ github.repository }}" --reason "not planned" | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
BODY: "```\n${{ steps.add_entry.outputs.issue_err }}\n```" | |
- name: Close because verified and valid | |
if: steps.verify_user.outputs.result == 'YES' && steps.add_entry.outputs.push_entry == 'YES' && steps.add_entry.outputs.has_issues == 'NO' | |
run: gh issue close ${{ github.event.issue.number }} --comment "$BODY" -R "${{ github.repository }}" | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
BODY: ${{ steps.add_entry.outputs.issue_output }} | |
- name: Comment waiting for staff | |
uses: peter-evans/create-or-update-comment@v4 | |
if: (steps.verify_user.outputs.result == 'NO' || steps.add_entry.outputs.has_issues == 'YES') && steps.add_entry.outputs.push_entry == 'YES' | |
with: | |
issue-number: ${{ github.event.issue.number }} | |
body: | | |
Waiting for a person who can approve to comment "!accept" to accept the entry. |