Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
New GitHub Features
Search
Sobolev Nikita
June 13, 2021
Programming
140
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
New GitHub Features
Sobolev Nikita
June 13, 2021
More Decks by Sobolev Nikita
See All by Sobolev Nikita
Чего вы не знали о строках в Python – Василий Рябов, PythoNN
sobolevn
0
250
ИИ-Агенты в каждый дом – Алексей Порядин, PythoNN
sobolevn
0
220
Внутреннее устройство сборки мусора в CPython 3.14+ – Сергей Мирянов, PythoNN
sobolevn
0
140
Генератор байткода и байткод генератора, Михаил Ефимов, PythoNN
sobolevn
0
140
Дотянуться до кремния. HighLoad Python: SIMD, GPU – Пётр Андреев, PythoNN
sobolevn
0
130
Проектирование — это когда чувствуешь, а не какие-то там циферки, Николай Хитров, PythoNN
sobolevn
0
150
Continuous profiling, Давид Джалаев, PythoNN
sobolevn
0
180
Михаил Гурбанов – Are you NATS? @ PythoNN
sobolevn
0
340
Дмитрий Бровкин – Почему исправление опечаток сложнее, чем кажется, и как мы с этим српавляемся @ PythoNN
sobolevn
0
79
Other Decks in Programming
See All in Programming
Can LLMs Replicate 4 Years of Compose Migration? Exploring the boundaries of automation with 279 XML files from a real product
makun
0
130
Vibes Containers 〜AIで変わるコンテナ設計と運用〜
tkikuc
3
530
LoopHub - ローカルで動く GitHub で、AI と共同開発
jugyo
1
530
デプロイ直後のレイテンシスパイクを調べたら、 Railsの仕様にたどり着いた
nhsykym
0
120
thread_parallel_with_free-threaded_Python_and_NumPy.pdf
riku_sakamoto
0
320
iOSDC2026登壇資料.pdf
riofujimon
0
120
Swift愛好会と私(ウホーイ) / Swift Fan Club and Uhooi
uhooi
0
150
Webの地図
yosuke_furukawa
PRO
6
4.3k
Foundry Localでエージェント開発
seosoft
0
180
GKE で Pod の見方を変えたら、スケールアウト時の挙動を真に捉えられた話
stkk
0
110
go-spidermonkeyでAIエージェントのCode Modeを実装する
syumai
3
1.5k
Claude Codeを組織的に動かして月400PRを実現した話
happy_ryo
0
270
Featured
See All Featured
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
530
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
270
Faster Mobile Websites
deanohume
310
32k
Designing Powerful Visuals for Engaging Learning
tmiket
1
540
How to Think Like a Performance Engineer
csswizardry
28
2.8k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
240
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
250
From π to Pie charts
rasagy
0
360
Building Applications with DynamoDB
mza
96
7.2k
Ethics towards AI in product and experience design
skipperchong
2
370
For a Future-Friendly Web
brad_frost
183
10k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
Transcript
Никита Соболев github.com/sobolevn
>_ X GitHub Actions
Задача: прогоним линтер для Python проекта
None
name: Python package on: [push] jobs: build: runs-on: ubuntu-latest strategy:
max-parallel: 4 matrix: python-version: [2.7, 3.5, 3.6, 3.7] steps: # ...
name: Python package on: [push] jobs: build: runs-on: ubuntu-latest strategy:
max-parallel: 4 matrix: python-version: [2.7, 3.5, 3.6, 3.7] steps: # ...
name: Python package on: [push] jobs: build: runs-on: ubuntu-latest strategy:
max-parallel: 4 matrix: python-version: [2.7, 3.5, 3.6, 3.7] steps: # ...
name: Python package on: [push] jobs: build: runs-on: ubuntu-latest strategy:
max-parallel: 4 matrix: python-version: [2.7, 3.5, 3.6, 3.7] steps: # ...
Подготовка
name: Python package # ... steps: - uses: actions/checkout@v1 -
name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v1 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | pip install -r requirements.txt
name: Python package # ... steps: - uses: actions/checkout@v1 -
name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v1 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | pip install -r requirements.txt
name: Python package # ... steps: - uses: actions/checkout@v1 -
name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v1 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | pip install -r requirements.txt
name: Python package # ... steps: - uses: actions/checkout@v1 -
name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v1 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | pip install -r requirements.txt matrix: python-version: [2.7, 3.5, 3.6, 3.7]
name: Python package # ... steps: - uses: actions/checkout@v1 -
name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v1 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | pip install -r requirements.txt
name: Python package # ... steps: - uses: actions/checkout@v1 -
name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v1 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | pip install -r requirements.txt
Подготовились. Проверяем!
name: Python package # ... steps: # ... - name:
Lint with wemake-python-styleguide run: | pip install flake8 flake8 . - name: Test with pytest run: | pip install pytest pytest
name: Python package # ... steps: # ... - name:
Lint with wemake-python-styleguide run: | pip install flake8 flake8 . - name: Test with pytest run: | pip install pytest pytest
None
None
None
None
Создай свое
Dockerfile
github.com/wemake- services/wemake- python-styleguide
Но есть и готовые фреймворки
Готовые npm компоненты
Готовые npm компоненты > @actions/core
Готовые npm компоненты > @actions/core > @actions/exec
Готовые npm компоненты > @actions/core > @actions/exec > @actions/io
Готовые npm компоненты > @actions/core > @actions/exec > @actions/io >
@actions/tool-cache
Готовые npm компоненты > @actions/core > @actions/exec > @actions/io >
@actions/tool-cache > @actions/github
🚀
github.com/sobolevn/ restrict-cursing- action
sobolevn.me/talks/devoops-2019
Внимание! Новинки!
permissions: actions: read|write|none checks: read|write|none contents: read|write|none deployments: read|write|none issues:
read|write|none packages: read|write|none pull-requests: read|write|none repository-projects: read|write|none security-events: read|write|none statuses: read|write|none GITHUB_TOKEN
Deploy Environments
None
None
>_ X GitHub Container Registry
None
>_ X GitHub Codespaces
Позволяет запустить VSCode прям в браузере
Очень удобно для определенного класса задач
None
None
None
Удобство 1: папка .devcontainer/
{ "name": "HypothesisWorks/hypothesis", "image": "python:3.8-slim-buster", "settings": { "python.pythonPath": "${workspaceFolder}/.venv/bin/python3", },
// After container is created, we install all the requirements, // and show what commands there are in our own tooling: "postCreateCommand": "apt-get update && apt-get install -y make", }
Удобство 2: синхронизация настроек
Удобство 3: репозиторий dotfiles
None
github.com/sobolevn/ dotfiles
>_ X GitHub Issue Forms
У всех была вечная проблема: пользователи игнорировали все, что можно
было игнорировать
None
None
Скоро будет доступно для всех ;)
>_ X GitHub Discussions
Не каждый issue представляет собой ошибку или задачу
Иногда мы хотим просто задать вопрос или обсудить что-то
None
None
None
>_ X GitHub Sponsors
Удобный способ поддержать ваш любимый open-source проект
None
None
sobolevn.me Вопросы? github.com/sobolevn