Когда я впервые узнал, что могу бесплатно размещать свои приложения на GitHub, мое сознание было совершенно потрясено 🤯.
Давайте узнаем, как запланированные рабочие процессы могут свести ваш счет за облачный хостинг к $0

Настройка
Я не хочу тратить ваше время — это работает только в том случае, если ваше приложение не должно работать круглосуточно, а скорее по фиксированному расписанию. Если ваше приложение основано на данных, которые вам нужно собирать ежедневно, или если вы хотите автоматически отправлять своей девушке сообщение с добрым утром, это отлично сработает! Не то чтобы я рекомендовал автоматизировать ваши отношения 🫠.
Для этого примера мы автоматизируем мой старый инструмент, который собирает данные с новостного сайта. В репозитории вы найдете очень простой скрипт на NodeJS (v18), имеющий несколько зависимостей и один шаг сборки. Если вы хотите запустить его, выполните npm install, npm run build и, наконец, npm run start. После этого скрипт соберет данные, обобщит их, отправит мне сообщение в Telegram и, наконец, остановится. Поскольку этот скрипт будет обобщать новости для меня, я хочу, чтобы он запускался каждое утро. С учетом этих требований мы можем построить наш рабочий процесс GitHub Action:
name: Daily Report
on:
schedule:
- cron: "0 6 * * *" # Use a tool like www.cronmaker.com
workflow_dispatch: # Enable manual trigger
jobs:
build-and-start:
runs-on: ubuntu-latest # Base Image
steps:
- uses: actions/checkout@v3 # Get code from repo
- uses: actions/setup-node@v3 # Install Node.JS
with:
node-version: 18.x # Use any major version 18
- run: npm install # Install dependencies
- run: npm run build # Compile Code
- run: npm run start # Start Code
env: # Runtime secrets are defined in Repository Settings
GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
GOOGLE_PROJECT_ID: ${{ secrets.GOOGLE_PROJECT_ID }}
TELEGRAM_API_KEY: ${{ secrets.TELEGRAM_API_KEY }}
TELEGRAM_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
Если вы все сделали правильно, то теперь GitHub будет выполнять этот рабочий процесс каждый день. Вы увидите результаты и журналы в своем репозитории здесь
Заключение
Это было просто потрясающе, правда? Конечно, вы можете сделать это для своих собственных программ и даже использовать совершенно другие языки или настройки. Если вам нужна помощь в настройке, пожалуйста, сообщите мне об этом в комментариях! Всегда рад помочь :)
PS: Хотите недорого разместить свои долго работающие Docker-приложения? Обратите внимание на Sliplane!