Skip to content

Update post-to-reddit.yaml #12

Update post-to-reddit.yaml

Update post-to-reddit.yaml #12

Workflow file for this run

name: Post to Reddit
on:
push:
tags:
- "v*"
jobs:
post-to-reddit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Get Release
id: get_release
uses: bruceadams/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GORELEASER }}
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: "3.x"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install praw
- name: Post to Reddit
env:
REDDIT_CLIENT_ID: ${{ secrets.REDDIT_APP_ID }}
REDDIT_CLIENT_SECRET: ${{ secrets.REDDIT_APP_SECRET }}
REDDIT_USERNAME: ${{ secrets.REDDIT_USERNAME }}
REDDIT_PASSWORD: ${{ secrets.REDDIT_PASSWORD }}
SUBREDDITS: '["immich", "selfhosted"]'
RELEASE_JSON: ${{ toJson(steps.get_release.outputs) }}
run: |
python - <<EOF
import praw
import os
import json
import time
reddit = praw.Reddit(
client_id=os.environ['REDDIT_CLIENT_ID'],
client_secret=os.environ['REDDIT_CLIENT_SECRET'],
username=os.environ['REDDIT_USERNAME'],
password=os.environ['REDDIT_PASSWORD'],
user_agent="GitHub-Release-Bot/1.0"
)
release = json.loads(os.environ['RELEASE_JSON'])
title = f"Immich Kiosk {release['tag_name']} Released"
tag_name = release['tag_name']
clean_tag_name = tag_name[1:] if tag_name.startswith('v') else tag_name
body = f"""
![Immich Kiosk {tag_name}](https://immich-kiosk.vercel.app/api/banner?v={clean_tag_name})
[What is Kiosk?](https://github.com/damongolding/immich-kiosk?tab=readme-ov-file#what-is-immich-kiosk)
Release Notes:
{release['body']}
View on GitHub: {release['html_url']}
"""
subreddits = json.loads(os.environ['SUBREDDITS'])
for subreddit_name in subreddits:
try:
subreddit = reddit.subreddit(subreddit_name)
subreddit.submit(title, selftext=body)
print(f"Posted to r/{subreddit_name}")
time.sleep(10) # Wait 10 seconds between posts to avoid rate limiting
except Exception as e:
print(f"Failed to post to r/{subreddit_name}: {str(e)}")
EOF