forked from AITech/aitech-ium
Merge pull request 'master' (#43) from tzietkiewicz/aitech-ium:master into master
Reviewed-on: AITech/aitech-ium#43
This commit is contained in:
commit
bfac49d4fe
13
.github/workflows/workflow.yml
vendored
Normal file
13
.github/workflows/workflow.yml
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
name: github-actions-hello
|
||||
on: [push]
|
||||
jobs:
|
||||
hello-job:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v2
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v2.2.2
|
||||
with:
|
||||
python-version: '3.7'
|
||||
- run: python3 --version
|
1377
IUM_10.DVC.ipynb
1377
IUM_10.DVC.ipynb
File diff suppressed because it is too large
Load Diff
405
IUM_11.CML.ipynb
405
IUM_11.CML.ipynb
@ -12,8 +12,8 @@
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1> Inżynieria uczenia maszynowego </h1>\n",
|
||||
"<h2> 11. <i>Github actions i CML</i> [laboratoria]</h2> \n",
|
||||
"<h3> Tomasz Ziętkiewicz (2022)</h3>\n",
|
||||
"<h2> 11. <i>Github actions</i> [laboratoria]</h2> \n",
|
||||
"<h3> Tomasz Ziętkiewicz (2023)</h3>\n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||
@ -70,8 +70,8 @@
|
||||
"source": [
|
||||
"### Terminologia Github Actions\n",
|
||||
" - *Workflow* - workflow odpowiada \"Pipeline\" z Jenkinsa.\n",
|
||||
" - *Event* - zdażenie, które odapala (\"triggers\") uruchomienie \"Workflow\". Np. wypchnięcie zmiany do repozytorium (\"push\"), utworzenie Pull requesta. [Pełna lista](https://docs.github.com/en/actions/reference/events-that-trigger-workflows)\n",
|
||||
" - *Job* - workflow składa się z jednego lub kilku \"jobs\". Każdy z nich może być wykonywany równolegle na innej maszynie (patrz \"runner\")\n",
|
||||
" - *Event* - zdarzenie, które odapala (\"triggers\") \"Workflow\". Np. wypchnięcie zmiany do repozytorium (\"push\"), utworzenie Pull requesta. [Pełna lista](https://docs.github.com/en/actions/reference/events-that-trigger-workflows)\n",
|
||||
" - *Job* - workflow składa się z jednego lub kilku zadań (\"jobs\"). Każde z nich może być wykonywane równolegle na innej maszynie (patrz \"runner\")\n",
|
||||
" - *Step* - odpowiednik \"Stage\" z Jenkinsa - służu do grupowania \"Actions\"\n",
|
||||
" - *Action/command* - odpowiednik \"Step\" z Jenkinsa - pojedyncze polecenie do wykonania, np. dodanie komentarze do Pull requesta, wykonanie polecenia systemowego itp.\n",
|
||||
" - *Runner* - odpowiednik Jenkinsowego \"Agent\" - serwer, na którym mogą być wykonywane zadania (\"jobs\")\n",
|
||||
@ -103,33 +103,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"id": "955585a9",
|
||||
"metadata": {
|
||||
"slideshow": {
|
||||
"slide_type": "slide"
|
||||
}
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"/home/tomek/AITech/repo/aitech-ium-private/IUM_11\n",
|
||||
"Initialized empty Git repository in /home/tomek/AITech/repo/aitech-ium-private/IUM_11/github-actions-hello/.git/\r\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"%cd IUM_11\n",
|
||||
"!mkdir github-actions-hello;\\\n",
|
||||
"cd github-actions-hello;\\\n",
|
||||
"git init"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"execution_count": 16,
|
||||
"id": "f4916c1f",
|
||||
"metadata": {
|
||||
"slideshow": {
|
||||
@ -141,18 +115,49 @@
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"/home/tomek/AITech/repo/aitech-ium-private/IUM_11/github-actions-hello\n"
|
||||
"/home/tomek/repos/aitech-ium/IUM_11/github-actions-hello\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"%cd github-actions-hello\n",
|
||||
"!mkdir -p IUM_11/github-actions-hello\n",
|
||||
"%cd IUM_11/github-actions-hello\n",
|
||||
"!mkdir -p .github/workflows"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 6,
|
||||
"execution_count": 19,
|
||||
"id": "33abf69d",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Reinitialized existing Git repository in /home/tomek/repos/aitech-ium/IUM_11/github-actions-hello/.git/\n",
|
||||
"Enumerating objects: 6, done.\n",
|
||||
"Counting objects: 100% (6/6), done.\n",
|
||||
"Delta compression using up to 4 threads\n",
|
||||
"Compressing objects: 100% (4/4), done.\n",
|
||||
"Writing objects: 100% (6/6), 780 bytes | 780.00 KiB/s, done.\n",
|
||||
"Total 6 (delta 0), reused 0 (delta 0), pack-reused 0\n",
|
||||
"To github.com:TomekZet/ium-ga-hello.git\n",
|
||||
" * [new branch] main -> main\n",
|
||||
"Branch 'main' set up to track remote branch 'main' from 'origin'.\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"!git init\n",
|
||||
"!git branch -M main\n",
|
||||
"!git remote add origin git@github.com:TomekZet/ium-ga-hello.git\n",
|
||||
"!git push -u origin main"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 20,
|
||||
"id": "dde8d432",
|
||||
"metadata": {
|
||||
"slideshow": {
|
||||
@ -164,7 +169,7 @@
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Writing .github/workflows/workflow.yml\n"
|
||||
"Overwriting .github/workflows/workflow.yml\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
@ -185,6 +190,144 @@
|
||||
" - run: python3 --version"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 22,
|
||||
"id": "780f41d6",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"On branch main\n",
|
||||
"Your branch is up to date with 'origin/main'.\n",
|
||||
"\n",
|
||||
"nothing to commit, working tree clean\n",
|
||||
"Everything up-to-date\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"!git add .github/workflows/workflow.yml\n",
|
||||
"!git commit -m \"Github Actions Workflow\"\n",
|
||||
"!git push"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "b56a1b02",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Zakładka actions na stronie repozytorium:\n",
|
||||
"https://github.com/TomekZet/ium-ga-hello/actions"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 27,
|
||||
"id": "e3be3eb3",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"total 16\r\n",
|
||||
"drwxr-sr-x 2 tomek tomek 4096 May 17 11:51 .\r\n",
|
||||
"drwxr-sr-x 3 tomek tomek 4096 May 17 11:51 ..\r\n",
|
||||
"-rw-r--r-- 1 tomek tomek 456 May 17 11:51 parametrized.yml\r\n",
|
||||
"-rw-r--r-- 1 tomek tomek 305 May 17 12:01 workflow.yml\r\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"!ls -al .github/workflows"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "b40a7f62",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Ręczne wywoływanie\n",
|
||||
"Workflow można również wywołać ręcznie, podając parametry.\n",
|
||||
"Więcej informacji np. tutaj: https://github.blog/changelog/2020-07-06-github-actions-manual-triggers-with-workflow_dispatch/"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 42,
|
||||
"id": "132d8d16",
|
||||
"metadata": {
|
||||
"slideshow": {
|
||||
"slide_type": "slide"
|
||||
}
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Overwriting .github/workflows/parametrized.yml\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"%%writefile .github/workflows/parametrized.yml\n",
|
||||
"name: github-actions-hello-parametrized\n",
|
||||
"on: \n",
|
||||
" workflow_dispatch:\n",
|
||||
" inputs:\n",
|
||||
" input_text:\n",
|
||||
" description: 'Text to display' \n",
|
||||
" required: true\n",
|
||||
" default: 'Hello World'\n",
|
||||
"jobs:\n",
|
||||
" hello-job:\n",
|
||||
" runs-on: ubuntu-latest\n",
|
||||
" steps:\n",
|
||||
" - name: Checkout repo\n",
|
||||
" uses: actions/checkout@v2\n",
|
||||
" - name: Install dependencies\n",
|
||||
" run:\n",
|
||||
" sudo apt update;\n",
|
||||
" sudo apt install -y figlet\n",
|
||||
" - name: Write\n",
|
||||
" run:\n",
|
||||
" figlet \"${{ github.event.inputs.input_text }}\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 43,
|
||||
"id": "c4e71172",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"[main a98938d] just dispatch\n",
|
||||
" 1 file changed, 6 deletions(-)\n",
|
||||
"Enumerating objects: 9, done.\n",
|
||||
"Counting objects: 100% (9/9), done.\n",
|
||||
"Delta compression using up to 4 threads\n",
|
||||
"Compressing objects: 100% (3/3), done.\n",
|
||||
"Writing objects: 100% (5/5), 411 bytes | 411.00 KiB/s, done.\n",
|
||||
"Total 5 (delta 1), reused 0 (delta 0), pack-reused 0\n",
|
||||
"remote: Resolving deltas: 100% (1/1), completed with 1 local object.\u001b[K\n",
|
||||
"To github.com:TomekZet/ium-ga-hello.git\n",
|
||||
" 6c4a361..a98938d main -> main\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"!git add -u .github/workflows\n",
|
||||
"!git commit -m \"just dispatch\"\n",
|
||||
"!git push"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "ed780dea",
|
||||
@ -219,6 +362,194 @@
|
||||
" - z [Github Marketplace](https://github.com/marketplace?type=actions)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "a0628b12",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Akcje wykonywane w kontenerze Docker\n",
|
||||
"Akcja może być wywołana w kontenerze Docker (pobranym z Docker hub albo zbudowanym z Dockerfile)\n",
|
||||
"W tym celu należy stworzyć własną akcję w pliku action.yaml i potem użyć jej w Workflow"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 59,
|
||||
"id": "b8222161",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Overwriting action.yml\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"%%writefile action.yml\n",
|
||||
"name: 'Hello World'\n",
|
||||
"description: 'Greet someone and record the time'\n",
|
||||
"inputs:\n",
|
||||
" who-to-greet: # id of input\n",
|
||||
" description: 'Who to greet'\n",
|
||||
" required: true\n",
|
||||
" default: 'World'\n",
|
||||
"outputs:\n",
|
||||
" time: # id of output\n",
|
||||
" description: 'The time we greeted you'\n",
|
||||
"runs:\n",
|
||||
" using: 'docker'\n",
|
||||
" image: 'Dockerfile'\n",
|
||||
" args:\n",
|
||||
" - ${{ inputs.who-to-greet }}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 47,
|
||||
"id": "80883b9e",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Overwriting Dockerfile\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"%%writefile Dockerfile\n",
|
||||
"# Container image that runs your code\n",
|
||||
"FROM ubuntu:latest\n",
|
||||
" \n",
|
||||
"RUN apt update && apt install -y figlet\n",
|
||||
"\n",
|
||||
"# Copies your code file from your action repository to the filesystem path `/` of the container\n",
|
||||
"COPY entrypoint.sh /entrypoint.sh\n",
|
||||
"\n",
|
||||
"# Code file to execute when the docker container starts up (`entrypoint.sh`)\n",
|
||||
"ENTRYPOINT [\"/entrypoint.sh\"]"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 50,
|
||||
"id": "f98fee9a",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Writing entrypoint.sh\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"%%writefile entrypoint.sh\n",
|
||||
"#!/bin/sh -l\n",
|
||||
"\n",
|
||||
"figlet \"Hello $1\"\n",
|
||||
"time=$(date)\n",
|
||||
"echo \"time=$time\" >> $GITHUB_OUTPUT"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 60,
|
||||
"id": "352de060",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"!chmod +x entrypoint.sh"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 57,
|
||||
"id": "d73fb6c4",
|
||||
"metadata": {
|
||||
"slideshow": {
|
||||
"slide_type": "slide"
|
||||
}
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Overwriting .github/workflows/docker.yml\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"%%writefile .github/workflows/docker.yml\n",
|
||||
"name: github-actions-hello-docker\n",
|
||||
"on: \n",
|
||||
" workflow_dispatch:\n",
|
||||
" inputs:\n",
|
||||
" input_text:\n",
|
||||
" description: 'Who to greet' \n",
|
||||
" required: true\n",
|
||||
" default: 'World'\n",
|
||||
"jobs:\n",
|
||||
" hello-job:\n",
|
||||
" runs-on: ubuntu-latest\n",
|
||||
" steps:\n",
|
||||
" - name: Checkout repo\n",
|
||||
" uses: actions/checkout@v2\n",
|
||||
" - name: Use docker action\n",
|
||||
" uses: ./\n",
|
||||
" with:\n",
|
||||
" who-to-greet: \"${{ github.event.inputs.input_text }}\"\n",
|
||||
" # Use the output from the `hello` step\n",
|
||||
" - name: Get the output time\n",
|
||||
" run: echo \"The time was ${{ steps.hello.outputs.time }}\"\n",
|
||||
" \n",
|
||||
" "
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 61,
|
||||
"id": "94d8eec0",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"[main 97c7272] Fix path\n",
|
||||
" 1 file changed, 0 insertions(+), 0 deletions(-)\n",
|
||||
" mode change 100644 => 100755 entrypoint.sh\n",
|
||||
"Enumerating objects: 3, done.\n",
|
||||
"Counting objects: 100% (3/3), done.\n",
|
||||
"Delta compression using up to 4 threads\n",
|
||||
"Compressing objects: 100% (2/2), done.\n",
|
||||
"Writing objects: 100% (2/2), 232 bytes | 232.00 KiB/s, done.\n",
|
||||
"Total 2 (delta 1), reused 0 (delta 0), pack-reused 0\n",
|
||||
"remote: Resolving deltas: 100% (1/1), completed with 1 local object.\u001b[K\n",
|
||||
"To github.com:TomekZet/ium-ga-hello.git\n",
|
||||
" 0f9de38..97c7272 main -> main\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"!git add .github entrypoint.sh Dockerfile\n",
|
||||
"!git commit -m \"Fix path\"\n",
|
||||
"!git push"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "9c396330",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "805622e8",
|
||||
@ -562,7 +893,7 @@
|
||||
"author": "Tomasz Ziętkiewicz",
|
||||
"email": "tomasz.zietkiewicz@amu.edu.pl",
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3 (ipykernel)",
|
||||
"display_name": "Python 3",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
@ -577,7 +908,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.10.4"
|
||||
"version": "3.9.16"
|
||||
},
|
||||
"slideshow": {
|
||||
"slide_type": "slide"
|
||||
|
1
IUM_11/github-actions-hello
Submodule
1
IUM_11/github-actions-hello
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 97c7272bcaccf4a578615526b71ca723bb2b6d00
|
Loading…
Reference in New Issue
Block a user