Skip to content

Generate Weekly Post #15

Generate Weekly Post

Generate Weekly Post #15

Workflow file for this run

name: Generate Weekly Post
on:
schedule:
- cron: "0 22 * * 3,6" # Toda quarta e sábado às 22:00 UTC
workflow_dispatch:
permissions:
contents: write
pull-requests: write
env:
BRANCH_NAME: posts/generated-by-ai
jobs:
generate_post:
runs-on: ubuntu-latest
outputs:
post_title: ${{ steps.generate_post.outputs.post_title }}
post_slug: ${{ steps.generate_post.outputs.post_slug }}
post_categories: ${{ steps.generate_post.outputs.post_categories }}
post_tags: ${{ steps.generate_post.outputs.post_tags }}
post_filename: ${{ steps.generate_post.outputs.post_filename }}
post_image: ${{ steps.generate_post.outputs.post_image }}
steps:
- name: Checkout do repositório
uses: actions/checkout@v4
- name: Configurar Python
uses: actions/setup-python@v5
with:
python-version: "3.x"
- name: Instalar dependências
run: pip install requests
- name: Gerar post
id: generate_post
run: python generate_post.py
env:
GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
CF_AI_API_KEY: ${{ secrets.CF_AI_API_KEY }}
CF_ACCOUNT_ID: ${{ secrets.CF_ACCOUNT_ID }}
- name: Salvar arquivo para upload
run: |
# Garantir que os diretórios existam
mkdir -p temp
# Copiar os arquivos gerados para a pasta temp
cp ${{ steps.generate_post.outputs.post_filename }} temp/post.md
if [ -f "${{ steps.generate_post.outputs.post_image }}" ]; then
cp ${{ steps.generate_post.outputs.post_image }} temp/image.png
fi
- name: Upload do post gerado como artifact
uses: actions/upload-artifact@v4
with:
name: generated-post
path: temp/
retention-days: 1
create_pull_request:
needs: generate_post
runs-on: ubuntu-latest
steps:
- name: Checkout do repositório
uses: actions/checkout@v4
- name: Download do post gerado
uses: actions/download-artifact@v4
with:
name: generated-post
path: temp
- name: Mover post gerado para o diretório correto
run: |
if [ -f "temp/post.md" ]; then
cp temp/post.md "${{ needs.generate_post.outputs.post_filename }}"
fi
if [ -f "temp/image.png" ]; then
# Garante que o diretório existe
mkdir -p $(dirname "${{ needs.generate_post.outputs.post_image }}")
# Copia a imagem para o local correto
cp temp/image.png "${{ needs.generate_post.outputs.post_image }}"
fi
rm -rf temp
- name: Configurar Git
run: |
git config --local user.name "R. Daneel Olivaw"
git config --local user.email "cleissonbarbosa68@gmail.com"
- name: Criar Pull Request
uses: peter-evans/create-pull-request@v7
with:
commit-message: "Add a new AI generated post"
title: "New post: ${{ needs.generate_post.outputs.post_title }}"
body: |
## This post was automatically generated by an AI.
### Post Information
- Title: ${{ needs.generate_post.outputs.post_title }}
- Slug: ${{ needs.generate_post.outputs.post_slug }}
- Categories: `${{ needs.generate_post.outputs.post_categories }}`
- Tags: `${{ needs.generate_post.outputs.post_tags }}`
- File: [${{ needs.generate_post.outputs.post_filename }}](${{github.server_url}}/${{github.repository}}/blob/${{ env.BRANCH_NAME }}/${{ needs.generate_post.outputs.post_filename }})
### Post Image
![${{ needs.generate_post.outputs.post_image }}](https://raw.githubusercontent.com/${{github.repository}}/refs/heads/${{ env.BRANCH_NAME }}/${{ needs.generate_post.outputs.post_image }})
branch: ${{ env.BRANCH_NAME }}
author: "R. Daneel Olivaw <cleissonbarbosa68@gmail.com>"
labels: "ai-generated,new-post"
reviewers: "cleissonbarbosa"
committer: "R. Daneel Olivaw <cleissonbarbosa@gmail.com>"