name: Register the model for the given pipeline branch # on: # push: # branches: # - "model-**" on: pull_request: types: - closed branches: - "master" permissions: write-all jobs: Use-Major-Label-on-Merge: if: ${{ (github.event.pull_request.merged == true) && (contains(github.event.pull_request.labels.*.name, 'major')) }} runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Test echoo run: | echo "Hello Major" Use-Minor-Label-on-Merge: if: ${{ (github.event.pull_request.merged == true) && (contains(github.event.pull_request.labels.*.name, 'minor')) }} runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Test echoo run: | echo "Hello Minor" Use-Patch-Label-on-Merge: if: ${{ (github.event.pull_request.merged == true) && (contains(github.event.pull_request.labels.*.name, 'patch')) }} runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Test echoo run: | echo "Hello Patch" # Promote-Model-To-Dev: # if: github.event.pull_request.merged == true # runs-on: ubuntu-latest # steps: # - uses: actions/checkout@v3 # - name: Install packages to retrieve artifacts # run: | # pip install --upgrade pip # pip install -r modules/ml-pipeline/src/pipeline/src/requirements/version_control/requirements.txt # - name: Retrieve artifacts (dvc.lock) # env: # AWS_ACCESS_KEY_ID: ${{ secrets.ROBOT_AWS_ACCESS_KEY_ID }} # AWS_SECRET_ACCESS_KEY: ${{ secrets.ROBOT_AWS_SECRET_ACCESS_KEY }} # run: | # cd modules/ml-pipeline/src/pipeline/src # dvc pull -r experiments # - name: Push artifacts to Dev # env: # AWS_ACCESS_KEY_ID: ${{ secrets.ROBOT_AWS_ACCESS_KEY_ID }} # AWS_SECRET_ACCESS_KEY: ${{ secrets.ROBOT_AWS_SECRET_ACCESS_KEY }} # run: | # cd modules/ml-pipeline/src/pipeline/src # dvc push -r dev Register-New-Model-Dev: # if: github.event.pull_request.merged == true runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Install packages to register model env: AWS_ACCESS_KEY_ID: ${{ secrets.ROBOT_AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.ROBOT_AWS_SECRET_ACCESS_KEY }} run: | pip install --upgrade pip pip install -r modules/ml-pipeline/src/pipeline/src/requirements/version_control/requirements.txt - name: Register Model env: AWS_ACCESS_KEY_ID: ${{ secrets.ROBOT_AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.ROBOT_AWS_SECRET_ACCESS_KEY }} run: | # REGISTER_MODEL_NAME=$(echo ${{ github.event.pull_request.head.ref }} | awk -F"-" '{print $1}') REGISTER_MODEL_NAME=$(echo ${{github.ref_name}} | awk -F"-" '{print $1}') git config user.name "Github-Bot" git config user.email "Github-Bot@no-reply.com" # git tag model@v0.0.1 # git push origin model@v0.0.1 # gto register test --repo https://github.com/Hestia-Homes/ML/ # echo "chicken" >> test.md gto -v register ${REGISTER_MODEL_NAME} # gto assign regression --stage dev # gto show # Register-Prediction-Image-Dev: # needs: Promote-Model-To-Dev # # needs: [Promote-Model-To-Dev, Register-New-Model-Dev] WILL ADD BACK ONCE REGISTER WORKS # runs-on: ubuntu-latest # steps: # - uses: actions/checkout@v3 # - name: Install packages to retrieve artifacts # env: # AWS_ACCESS_KEY_ID: ${{ secrets.ROBOT_AWS_ACCESS_KEY_ID }} # AWS_SECRET_ACCESS_KEY: ${{ secrets.ROBOT_AWS_SECRET_ACCESS_KEY }} # run: | # pip install --upgrade pip # pip install -r modules/ml-pipeline/src/pipeline/src/requirements/version_control/requirements.txt # - name: Retrieve artifacts (dvc.lock) # env: # AWS_ACCESS_KEY_ID: ${{ secrets.ROBOT_AWS_ACCESS_KEY_ID }} # AWS_SECRET_ACCESS_KEY: ${{ secrets.ROBOT_AWS_SECRET_ACCESS_KEY }} # run: | # cd modules/ml-pipeline/src/pipeline/src # dvc pull -r dev # - name: Build Prediction docker image (TODO - NEED LAMBDA IMAGE, need to add version from gto registry) # run: | # cd modules/ml-pipeline/src/pipeline/ # REGISTER_MODEL_NAME=$(echo ${{ github.event.pull_request.head.ref }} | awk -F"-" '{print $1}') # docker build . --file Prediction.Dockerfile --tag ${REGISTER_MODEL_NAME} # - name: ECR Login - Dev # env: # AWS_ACCESS_KEY_ID: ${{ secrets.ROBOT_AWS_ACCESS_KEY_ID }} # AWS_SECRET_ACCESS_KEY: ${{ secrets.ROBOT_AWS_SECRET_ACCESS_KEY }} # run: | # echo "LOGIN TO ECR" # - name: Push Prediction image to ECR - Dev # env: # AWS_ACCESS_KEY_ID: ${{ secrets.ROBOT_AWS_ACCESS_KEY_ID }} # AWS_SECRET_ACCESS_KEY: ${{ secrets.ROBOT_AWS_SECRET_ACCESS_KEY }} # run: | # echo "PUSH TO ECR"