Generate Weekly Post #15
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: 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 | |
 | |
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>" |