Skip to content

Module 1 webinar

Module 1 webinar #28

Workflow file for this run

name: Module 1
on:
workflow_dispatch:
# push:
pull_request:
branches:
- main
env:
IMAGE_ML_APP: app-ml
IMAGE_ML_WEB: app-web
jobs:
ci-test-bash-code:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Test echo
run: |
echo 'test'
- name: Test ls
run: |
ls -all .
app-ml-docker:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Log in to the Container registry
uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7
with:
images: ghcr.io/kyryl-opens-ml/app-ml
- name: Build and push Docker image
uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4
with:
context: module-1/app-ml/
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
app-web-docker:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Log in to the Container registry
uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7
with:
images: ghcr.io/kyryl-opens-ml/app-web
- name: Build and push Docker image
uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4
with:
context: module-1/app-web/
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
app-ml-docker-but-with-cli:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login
run: |
docker login ghcr.io -u truskovskiyk -p ${{ secrets.GH_TOKEN }}
- name: Build
run: |
docker build --tag ghcr.io/kyryl-opens-ml/app-ml:latest ./module-1/app-ml
- name: Push
run: |
docker push ghcr.io/kyryl-opens-ml/app-ml:latest
- name: Run ok
run: |
docker run --rm --name app-ml-test-run ghcr.io/kyryl-opens-ml/app-ml:latest
k8s-test-deployment-action:
runs-on: ubuntu-latest
steps:
- name: Create k8s Kind Cluster
uses: helm/[email protected]
- name: Checkout
uses: actions/checkout@v2
- name: Deploy application
run: |
kubectl create -f module-1/k8s-resources/deployment-app-web.yaml
- name: Print pods
run: |
sleep 5 && kubectl get pod -A
- name: Print pods
run: |
kubectl wait --for=condition=available --timeout=90s deployment/deployments-app-web
- name: Print pods
run: |
sleep 5 && kubectl get pod -A
modal-lab-example-run:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Install modal & setup creds
run: |
pip install modal --upgrade
modal token set --token-id ${{ secrets.MODAL_MODAL_LABS_TOKEN_ID }} --token-secret ${{ secrets.MODAL_MODAL_LABS_TOKEN_SECRET }}
- name: Run function
run: |
modal run ./module-1/modal_hello_world.py