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
150
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
New GitHub Features
Sobolev Nikita
June 13, 2021
Transcript
70 slides
Никита Соболев 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
More Decks by Sobolev Nikita
See All by Sobolev Nikita
adaptix_slides.pdf
sobolevn
0
24
Зачем программисту Twitch (что?) – Алексей Гладких, PythoNN
sobolevn
0
21
MQTT глазами BE для работы с embedded устройствами – Сергей Макаров, PythoNN
sobolevn
0
16
Я в СКРЫТОМ ПУЛЕ: выстраиваем процессы в команде без тильта – Максим Мельников, PythoNN
sobolevn
0
29
Я твой fastapi msgspec'ом ускорял – Александр Целуйко, PythoNN
sobolevn
0
29
Будущее локальных LLM – Алексей Голобурдин, PythoNN
sobolevn
0
120
Чего вы не знали о строках в Python – Василий Рябов, PythoNN
sobolevn
0
270
ИИ-Агенты в каждый дом – Алексей Порядин, PythoNN
sobolevn
0
240
Внутреннее устройство сборки мусора в CPython 3.14+ – Сергей Мирянов, PythoNN
sobolevn
0
160
Other Decks in Programming
See All in Programming
Goコンパイラを作ってGoをもっと理解する / Build a Go compiler to better understand Go
ikura_hamu
0
130
仕様駆動開発入門 (何を作るかを先に決めて渡す) | 目指せ Kiro マスター 05
inariku
PRO
2
160
Performance Optimization With LLMs
xleitix
0
260
조합이폭발하는디자인시스템이걸눈으로도테스트하라고요
giljongyu
0
750
コード生成時代のAPI定義を支えるRequest Spec移行
pvcresin
0
150
선언형 햅틱 라이브러리 진동을 소개합니다
l2hyunwoo
1
320
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
1
2.1k
複数ドメインを一つのアプリに統合するFlutterの設計と運用_FlutterKaigi2026登壇資料(須永高弘)
takahirosunaga
0
190
protojson における文字化けの扱い
kazuki1023
0
430
Secure Your Coding Agent Like It’s Malware (v1.5) 🇬🇧 @Code.talks 2026
richargh
0
150
作れるエンジニアから、価値を届けるエンジニアへ
ryunakayama
1
290
Apple Intelligenceとオンデバイス時代の到来
yahir0
0
240
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
34
9.8k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
The Curious Case for Waylosing
cassininazir
1
610
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
Skip the Path - Find Your Career Trail
mkilby
1
290
30 Presentation Tips
portentint
PRO
1
470
[RailsConf 2023] Rails as a piece of cake
palkan
59
7.1k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
Optimising Largest Contentful Paint
csswizardry
37
4k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.5k
Heart Work Chapter 1 - Part 1
lfama
PRO
11
37k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
490