Skip to content

Commit

Permalink
Create CD pipeline
Browse files Browse the repository at this point in the history
  • Loading branch information
rgallardone committed Jun 28, 2024
1 parent 73b799b commit 9fe3171
Show file tree
Hide file tree
Showing 3 changed files with 80 additions and 0 deletions.
52 changes: 52 additions & 0 deletions .github/workflows/cd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: 'Continuous Deployment'

#on:
# push:
# branches:
# - main
# - develop
# - release/*
on: [push, pull_request]

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Get the branch name
run: |
run: echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT
id: get_branch_name

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.9'

- name: Authenticate to GCP
uses: 'google-github-actions/auth@v2'
with:
credentials_json: '${{ secrets.CD_SA_KEYS }}'

- name: Install dependencies
run: |
pip install -r requirements.txt -r requirements-dev.txt -r requirements-test.txt
- name: Run training script
run: |
python train.py
- name: Authenticate Docker to GAR
uses: docker/login-action@v3
with:
registry: '${{ vars.GCP_REGION }}-docker.pkg.dev'
username: _json_key
password: ${{ secrets.CD_SA_KEYS }}

- name: Build and push Docker image
uses: docker/build-push-action@v6
with:
push: true
tags: '${{ vars.GAR_REPOSITORY }}/${{ vars.GAR_IMAGE_NAME }}'
2 changes: 2 additions & 0 deletions docs/challenge.md
Original file line number Diff line number Diff line change
Expand Up @@ -133,3 +133,5 @@ The CI workflows focus on running the tests and assesing the quality of the code
The CD workflows focus on training the model, deploying the API and running the stress testing against it. These workflows only run when there's a push to the `main`, `develop` or `release` branches on the repository.
* Undesirable model tracking
* env variables ci/cd
* makefile argument
26 changes: 26 additions & 0 deletions train.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
from challenge.model import DelayModel
import pandas as pd

print("Loading data...")
# Read the data
df = pd.read_csv("data/data.csv")
print("-> Data loaded")

# Create the model
model = DelayModel()

print("Preprocessing data...")
# Preprocess the data
X_train, y_train = model.preprocess(df, "delay")
print("-> Preprocessed data")


print("Training model...")
# Train the model
model.fit(X_train, y_train)
print("-> Model trained")

print("Saving model...")
# Store the model
model.save("challenge/tmp/model_checkpoint.pkl")
print("-> Model saved")

0 comments on commit 9fe3171

Please sign in to comment.