Skip to content

Merge branch 'dev' of https://github.com/Hexy00123/Sum2024MLOps into dev #135

Merge branch 'dev' of https://github.com/Hexy00123/Sum2024MLOps into dev

Merge branch 'dev' of https://github.com/Hexy00123/Sum2024MLOps into dev #135

Workflow file for this run

# .github/workflows/test-code.yaml
# Name of the workflow
name: Test code
# Trigger when?
on:
push: # this will trigger the workflow/pipeline only if there is push on `main` branch
branches:
- main
- dev
paths: # the push should be specifically to the folders `src` or `scripts` to trigger this workflow, otherwise, the workflow will not be triggered
- 'src/**'
- 'scripts/**'
- 'services/airflow/dags/**'
- 'tests/**'
- 'configs/**'
- '.github/**'
# Allows to only read the contents of the repository
# `contents: read` permits an action to list the commits
# `contents: write` allows the action to create a release
permissions:
contents: read
# Declare environment variables to be used in this workflow file
env:
message: "Testing code!"
# Tasks
jobs:
# Task name
test-code:
# OS to run the task
runs-on: ubuntu-latest # The ubuntu-latest label currently uses the Ubuntu 22.04 runner image
defaults: # Set working directory of the job
run:
shell: bash # Set the default shell
working-directory: .
# The steps of the task/job
steps:
- name: Checking out our code
uses: actions/checkout@v4
- name: setup python
uses: actions/setup-python@v5
with:
python-version: '3.11.0'
cache: 'pip' # caching pip dependencies
# python3.11 -m pip install --upgrade pip
- name: install python packages
run: |
pip3.11 install -r requirements.txt
- name: create-json
id: create-json
uses: jsdaniell/create-json@1.1.2
with:
name: "gdrive-credentials.json"
json: ${{ secrets.GDRIVE_CREDENTIALS_DATA }}
- name: Configure DVC remote with service account
run: |
dvc remote modify storage gdrive_use_service_account true
dvc remote modify storage --local gdrive_service_account_json_file_path gdrive-credentials.json
- name: Pull DVC data
run: |
dvc fetch
dvc pull
- name: Test git config
run: |
git status
git pull
git status
- name: Fetch tags
run: |
git fetch --tags --force
- name: Test tags version
run: |
git tag
- name: Test git checkout
run: |
git checkout v1.0 data/samples.dvc
dvc pull
git checkout v2.0 data/samples.dvc
dvc pull
git checkout v3.0 data/samples.dvc
dvc pull
git checkout v4.0 data/samples.dvc
dvc pull
git checkout v5.0 data/samples.dvc
dvc pull
- name: Test dvc checkout
run: |
dvc checkout data/samples.dvc
- name: Test checkout
run: |
git checkout HEAD data/samples.dvc
dvc checkout data/samples.dvc
- name: Run your app
run: python3.11 src/app.py &
- name: Export variables
run: |
echo $PWD
export ZENML_CONFIG_PATH=$PWD/services/zenml
export PROJECTPATH=$PWD
export AIRFLOW_HOME=$PWD/services/airflow
export PYTHONPATH=$PWD/src
- name: Run ZenML server
run: zenml down && zenml up
- name: Download kaggle dataset
run: python3.11 src/download_kaggle_dataset.py
- name: Test with pytest
run: pytest tests
# Another job
print_info:
runs-on: ubuntu-latest
needs: test-code
steps:
- name: print my password
run: |
echo My password is ${{ secrets.PASSWORD }}
echo My name is '${{ vars.NAME }}'
- name: print message
run: echo $message