Skip to content

Data Extraction, Training, and Modeling #8

Data Extraction, Training, and Modeling

Data Extraction, Training, and Modeling #8

name: LSTM GRU Pipeline
on:
push:
branches:
- production
tags:
- '*'
schedule:
- cron: "0 10 * * *"
# 17 - 7 = 10
jobs:
extraction_train_modeling:
name: Data Extraction, Training, and Modeling
runs-on: ubuntu-latest
steps:
- name: Set global directory
run: git config --global --add safe.directory /github/workspace
- uses: actions/checkout@v3
with:
lfs: true
persist-credentials: false
fetch-depth: 1
- name: Read pipeline schedule date
id: read_schedule
run: |
SCHEDULE_DATE=$(cat schedulers/lstm_gru_schedule.ctl)
echo "schedule_date=${SCHEDULE_DATE}" >> $GITHUB_ENV
- name: Get current date
id: get_date
run: echo "current_date=$(date +'%Y-%m-%d')" >> $GITHUB_ENV
- name: Check if dates match
id: date_check
run: |
if [ "$schedule_date" = "$current_date" ]; then
echo "match=true" >> $GITHUB_ENV
else
echo "match=false" >> $GITHUB_ENV
fi
- name: Scraping Yahoo Finance
if: env.match != 'true'
run: |
mkdir datasets
wget https://raw.githubusercontent.com/tebakaja/tebakaja_cryptocurrency/production/postman/symbols.json \
-O postman/symbols.json
go run scraper.go
- name: Install Libraries
if: env.match != 'true'
run: pip install -r requirements.txt
- name: Modeling and Training
if: env.match != 'true'
run: |
mkdir models
mkdir pickles
mkdir posttrained
# python training.py --algorithm=LSTM_GRU
- name: Set Pipeline Schedule
if: env.match != 'true'
run: echo "$(date +'%Y-%m-%d')" > schedulers/lstm_gru_schedule.ctl
- name: Zip Posttrained, Models, and Pickles
if: env.match != 'true'
run: |
zip -r models.zip models
zip -r pickles.zip pickles
zip -r datasets.zip datasets
zip -r posttrained.zip posttrained
- name: Store Datasets to Google Drive
if: env.match != 'true'
uses: adityak74/google-drive-upload-git-action@main
with:
credentials: ${{ secrets.GDRIVE_CRED }}
filename: datasets.zip
folderId: ${{ secrets.GDRIVE_LSTM_GRU_ID }}
name: datasets.zip
overwrite: "true"
- name: Store Models to Google Drive
if: env.match != 'true'
uses: adityak74/google-drive-upload-git-action@main
with:
credentials: ${{ secrets.GDRIVE_CRED }}
filename: models.zip
folderId: ${{ secrets.GDRIVE_LSTM_GRU_ID }}
name: models.zip
overwrite: "true"
- name: Store Pickles to Google Drive
if: env.match != 'true'
uses: adityak74/google-drive-upload-git-action@main
with:
credentials: ${{ secrets.GDRIVE_CRED }}
filename: pickles.zip
folderId: ${{ secrets.GDRIVE_LSTM_GRU_ID }}
name: pickles.zip
overwrite: "true"
- name: Store Posttrained to Google Drive
if: env.match != 'true'
uses: adityak74/google-drive-upload-git-action@main
with:
credentials: ${{ secrets.GDRIVE_CRED }}
filename: posttrained.zip
folderId: ${{ secrets.GDRIVE_LSTM_GRU_ID }}
name: posttrained.zip
overwrite: "true"
- name: Remove Temporarary Files and Directories
if: env.match != 'true'
run: |
rm models.zip
rm pickles.zip
rm datasets.zip
rm posttrained.zip
rm -rf models
rm -rf pickles
rm -rf datasets
rm -rf posttrained
- name: Commit changes
if: env.match != 'true'
run: |
git config --local user.email "[email protected]"
git config --local user.name "belajarqywok"
git add -A
git commit -m "Data Extraction, Training, and Modeling"
- name: Push changes
if: env.match != 'true'
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.GH_TOKEN }}
branch: production
# model_deployment:
# name: Model Deployment
# runs-on: ubuntu-latest
# needs: extraction_train_modeling
# environment: Production
# env:
# HF_TOKEN: ${{ secrets.HF_TOKEN }}
# SPACE_NAME: cryptocurrency_prediction
# HF_USERNAME: qywok
# steps:
# - name: Set global directory
# run: git config --global --add safe.directory /github/workspace
# - uses: actions/checkout@v3
# with:
# persist-credentials: false
# fetch-depth: 1000
# - name: Check git status
# run: git status
# - name: Configure git
# run: |
# git config --local user.email "[email protected]"
# git config --local user.name "qywok"
# - name: Pull changes from remote
# run: |
# git pull https://$HF_USERNAME:[email protected]/spaces/$HF_USERNAME/$SPACE_NAME main || \
# (git merge --strategy-option theirs)
# - name: Add and commit changes
# run: |
# git add -A
# git diff-index --quiet HEAD || git commit -m "Model Deployment"
# - name: Push to Hugging Face
# run: |
# git push https://$HF_USERNAME:[email protected]/spaces/$HF_USERNAME/$SPACE_NAME main --force