Skip to content

Commit 957e1f1

Browse files
committed
Update social media post workflow to add Validate track title step
1 parent 11fdd3c commit 957e1f1

1 file changed

Lines changed: 5 additions & 103 deletions

File tree

Lines changed: 5 additions & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -1,105 +1,7 @@
1-
name: Social Media Auto-Post
2-
3-
on:
4-
push:
5-
branches: [gh-pages]
6-
paths:
7-
- 'music.html'
8-
- 'assets/music/**'
9-
workflow_dispatch:
10-
inputs:
11-
message:
12-
description: 'Custom message to post'
13-
required: false
14-
default: '🎵 New track available on davidkrk.com'
15-
16-
permissions:
17-
contents: read
18-
issues: write
19-
20-
jobs:
21-
detect-new-music:
22-
name: Detect New Music & Generate Social Post
23-
runs-on: ubuntu-latest
24-
steps:
25-
- name: Checkout
26-
uses: actions/checkout@v4
27-
with:
28-
ref: gh-pages
29-
fetch-depth: 2
30-
31-
- name: Check for music changes
32-
id: changes
33-
run: |
34-
if git diff HEAD^ HEAD -- music.html | grep -q 'music-item'; then
35-
echo "new_music=true" >> $GITHUB_OUTPUT
36-
echo "🎵 New music detected!"
37-
else
38-
echo "new_music=false" >> $GITHUB_OUTPUT
39-
echo "No new music found"
40-
fi
41-
42-
- name: Extract new track info
43-
if: steps.changes.outputs.new_music == 'true'
44-
id: track_info
45-
run: |
46-
# Extract the last added track title from music.html
47-
TRACK_TITLE=$(grep -oP '(?<=<h3>).*?(?=</h3>)' music.html | tail -1)
48-
echo "track_title=$TRACK_TITLE" >> $GITHUB_OUTPUT
49-
echo "Detected track: $TRACK_TITLE"
50-
51-
- name: Generate social media post content
52-
if: steps.changes.outputs.new_music == 'true'
53-
id: generate_post
54-
run: |
55-
TRACK="${{ steps.track_info.outputs.track_title }}"
56-
57-
cat << SOCIALPOST > social_post.txt
58-
🎵 NEW TRACK ALERT! 🎵
59-
60-
"$TRACK" is now available!
61-
62-
🎧 Listen now: https://www.davidkrk.com/music.html
63-
64-
#DavidKRK #NewMusic #DJ #Producer #ElectronicMusic #TechHouse
65-
SOCIALPOST
66-
67-
cat social_post.txt
68-
69-
- name: Create notification issue
70-
if: steps.changes.outputs.new_music == 'true'
71-
uses: actions/github-script@v7
72-
with:
73-
script: |
74-
const fs = require('fs');
75-
const postContent = fs.readFileSync('social_post.txt', 'utf8');
76-
77-
await github.rest.issues.create({
78-
owner: context.repo.owner,
79-
repo: context.repo.repo,
80-
title: '📱 Ready to post: ${{ steps.track_info.outputs.track_title }}',
81-
body: `## Social Media Post Ready\n\n${postContent}\n\n---\n\n**Next steps:**\n1. Copy the content above\n2. Post manually on your social networks\n3. Close this issue when done\n\n**Auto-posting is ready but requires API keys for:**\n- Facebook Pages API\n- Instagram Graph API\n- Twitter API v2\n\nTo enable auto-posting, add these secrets to your repository.`,
82-
labels: ['social-media', 'automated', 'new-music']
83-
});
84-
85-
- name: Save post for future auto-posting
1+
- name: Validate track title
862
if: steps.changes.outputs.new_music == 'true'
873
run: |
88-
mkdir -p .social-posts
89-
DATE=$(date +%Y-%m-%d_%H-%M-%S)
90-
cp social_post.txt ".social-posts/post_$DATE.txt"
91-
echo "Social post saved for future auto-posting"
92-
93-
# Future: uncomment when API keys are configured
94-
# post-to-facebook:
95-
# needs: detect-new-music
96-
# if: needs.detect-new-music.outputs.new_music == 'true'
97-
# runs-on: ubuntu-latest
98-
# steps:
99-
# - name: Post to Facebook
100-
# env:
101-
# FB_PAGE_TOKEN: ${{ secrets.FB_PAGE_TOKEN }}
102-
# run: |
103-
# curl -X POST "https://graph.facebook.com/v18.0/me/feed" \
104-
# -d "message=$(cat social_post.txt)" \
105-
# -d "access_token=$FB_PAGE_TOKEN"
4+
if [ -z "${{ steps.track_info.outputs.track_title }}" ]; then
5+
echo "⚠️ Attention: Aucun titre détecté!"
6+
exit 1
7+
fi

0 commit comments

Comments
 (0)