forked from tzietkiewicz/aitech-ium
Updated github actions aterials
This commit is contained in:
parent
8f75914eba
commit
3de0fde490
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",
|
"![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",
|
"<div class=\"alert alert-block alert-info\">\n",
|
||||||
"<h1> Inżynieria uczenia maszynowego </h1>\n",
|
"<h1> Inżynieria uczenia maszynowego </h1>\n",
|
||||||
"<h2> 11. <i>Github actions i CML</i> [laboratoria]</h2> \n",
|
"<h2> 11. <i>Github actions</i> [laboratoria]</h2> \n",
|
||||||
"<h3> Tomasz Ziętkiewicz (2022)</h3>\n",
|
"<h3> Tomasz Ziętkiewicz (2023)</h3>\n",
|
||||||
"</div>\n",
|
"</div>\n",
|
||||||
"\n",
|
"\n",
|
||||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||||
@ -70,8 +70,8 @@
|
|||||||
"source": [
|
"source": [
|
||||||
"### Terminologia Github Actions\n",
|
"### Terminologia Github Actions\n",
|
||||||
" - *Workflow* - workflow odpowiada \"Pipeline\" z Jenkinsa.\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",
|
" - *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 \"jobs\". Każdy z nich może być wykonywany równolegle na innej maszynie (patrz \"runner\")\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",
|
" - *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",
|
" - *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",
|
" - *Runner* - odpowiednik Jenkinsowego \"Agent\" - serwer, na którym mogą być wykonywane zadania (\"jobs\")\n",
|
||||||
@ -103,33 +103,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 1,
|
"execution_count": 16,
|
||||||
"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,
|
|
||||||
"id": "f4916c1f",
|
"id": "f4916c1f",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"slideshow": {
|
"slideshow": {
|
||||||
@ -141,18 +115,49 @@
|
|||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
"output_type": "stream",
|
"output_type": "stream",
|
||||||
"text": [
|
"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": [
|
"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"
|
"!mkdir -p .github/workflows"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"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",
|
"id": "dde8d432",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"slideshow": {
|
"slideshow": {
|
||||||
@ -164,7 +169,7 @@
|
|||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
"output_type": "stream",
|
"output_type": "stream",
|
||||||
"text": [
|
"text": [
|
||||||
"Writing .github/workflows/workflow.yml\n"
|
"Overwriting .github/workflows/workflow.yml\n"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@ -185,6 +190,144 @@
|
|||||||
" - run: python3 --version"
|
" - 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",
|
"cell_type": "markdown",
|
||||||
"id": "ed780dea",
|
"id": "ed780dea",
|
||||||
@ -219,6 +362,194 @@
|
|||||||
" - z [Github Marketplace](https://github.com/marketplace?type=actions)"
|
" - 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",
|
"cell_type": "markdown",
|
||||||
"id": "805622e8",
|
"id": "805622e8",
|
||||||
@ -562,7 +893,7 @@
|
|||||||
"author": "Tomasz Ziętkiewicz",
|
"author": "Tomasz Ziętkiewicz",
|
||||||
"email": "tomasz.zietkiewicz@amu.edu.pl",
|
"email": "tomasz.zietkiewicz@amu.edu.pl",
|
||||||
"kernelspec": {
|
"kernelspec": {
|
||||||
"display_name": "Python 3 (ipykernel)",
|
"display_name": "Python 3",
|
||||||
"language": "python",
|
"language": "python",
|
||||||
"name": "python3"
|
"name": "python3"
|
||||||
},
|
},
|
||||||
@ -577,7 +908,7 @@
|
|||||||
"name": "python",
|
"name": "python",
|
||||||
"nbconvert_exporter": "python",
|
"nbconvert_exporter": "python",
|
||||||
"pygments_lexer": "ipython3",
|
"pygments_lexer": "ipython3",
|
||||||
"version": "3.10.4"
|
"version": "3.9.16"
|
||||||
},
|
},
|
||||||
"slideshow": {
|
"slideshow": {
|
||||||
"slide_type": "slide"
|
"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