- Task 1: Daten herunterladen
- Task 2: Modell trainieren und mit train.py im Terminal ausführen
- Task 3: Modell speichern (als pickle File)
- Task 4: Modell im predict.py file laden und im Terminal ausführen
- create new python environment:
python3 -m venv .venv - activate python environment:
source .venv/bin/activate - install dependencies:
pip install -r requirements.txt
- create new python environment:
python -m venv .venv - activate python environment:
.\.venv\Scripts\Activate.ps1 - install dependencies:
pip install -r requirements.txt
- activate python environment:
source .venv/bin/activate - run python script:
python <filename.py>, e.g.python train.py - install new dependency:
pip install sklearn - save current installed dependencies back to requirements.txt:
pip freeze > requirements.txt - start python api with
python wsgi.py
- Create a heroku account
- Create a new app and save the name
- Go to your Account Settings and save the API Key
- Go to the secrets in the settings of your GitHub repository
- Add the API Key as
HEROKU_API_KEY - Add the app name as
HEROKU_APP_NAME - Add your email address (the one you used for creating the heroku account) as
HEROKU_EMAIL - The github actions scripts assumes that a
herokubranch exists. If it doesn't, create the branch - After the first successful github actions deployment, you should be able to access the api via
https://<your-app-name>.herokuapp.com
- action that is run on every pull request
openandsynchronizeevent
on:
pull_request:
types: [opened, synchronize]
- the action will run
train.pyand upload the model as an artifact inside the action
- action that is run on every
pushin themainbranch (that also includes merges from any other branch tomainbranch)
on:
push:
branches:
- main
- the action will run
train.pyand upload the model as an artifact inside the action - the action will create or checkout a branch called
herokuand mergemaintoheroku - the action will deploy the code to heroku hosting and run the API, see the action documentation for more information
- init new git repository:
git init - add https://github.com/example/repo.git as remote repository:
git remote add origin https://github.com/example/repo.git - check configured remote:
git remote -v - stage file/directory for commit:
git add <file or directory> - commit with message:
git commit - m "message" - show git history of current branch:
git log - create new branch with history from current branch:
git branch <branchname> - check out branch:
git checkout <branchname> - pull changes from remote branch into current branch:
git pull - push and set remote branchname, always set the same name as local branch name:
git push --set-upstream origin <branchname> - push changes to existing remote branch:
git push - create new python environment:
python3 -m venv .venv - activate python environment:
source .venv/bin/activate - show installed python dependencies:
pip freeze - show installed python dependencies & save to requirements.txt file:
pip freeze > requirements.txt - install dependencies from file:
pip install -r requirements.txt - install single pandas dependency
pip install pandas - checkout git branch (if exists) or create a new one (if it does not exist):
git checkout foo 2>/dev/null || git checkout -b foo, see https://stackoverflow.com/questions/26961371/switch-on-another-branch-create-if-not-exists-without-checking-if-already-exi