👉 소개
몇 달 전에 소스 코드
CI & CD to Github.com를 마이그레이션하기 시작했습니다.
그런 다음 DEV와 OPS 모두 소스 코드를 마이그레이션하기 시작했습니다.
OPS는 onPrem Gitlab 인스턴스에서 Github.com으로 엄청난 양
Ansible의 관련 리포지토리를 마이그레이션해야 하는 것으로 나타났으며 우리는 yaml의 린팅 및 코드 품질을 활용하기를 원했습니다.
OPS는 완전히 코드 기반으로 테스트할 수 있도록 마이그레이션 프로세스를 개발하기 시작했습니다.
나타난 것은 다음과 같은 엄청난 양의 코드를 관리해야 한다는 것입니다.
1️⃣ lint(구문 유효성, 그러나 키 반복과 같은 이상함과 줄 길이, 후행 공백, 들여쓰기 등과 같은 외관상의 문제) 2️⃣ 막대한 방식으로 린트 피드백을 수정/구현합니다(그 피드백이 너무 커서 수동으로는 상상할 수 없었습니다)OPS는 다음 접근 방식을 사용하기로 결정했습니다.
1️⃣ 린트 with yamllint
2️⃣ yamlfixer 으로 수정, 사실 코어에서
yamllint
사용
DEV 및 OPS가
yaml
를 매일 조금 더 많이(
k8s ,
CI configuration ,
Spring Boot configuration , ...) 사용함에 따라 우리는
think about a common toolbox that we could embed in our CI pipeline, on Github.com.
우리가 해야 할 일은 다음과 같습니다.
OPS 소스 코드 통합(DevOPS 팀워크)
모든 사람이 코드 몇 줄 내에서 파이프라인에 추가할 수 있는 전용 GH 작업으로 내부에 패키징합니다.
🛠️ Yaml 해결사
yamlfixer에서 OPS가 중요한 작업을 수행하여
cli
에서 편리하게 사용할 수 있습니다.
opt-nc
/
yamlfixer
출력을 구문 분석하여 yamllint에서 보고된 문제 수정을 자동화합니다.
yamlfixer
❔ 소개
yamlfixer 고정 자동화
보고된 문제 수
yamllint을 구문 분석하여
산출.
🖼️ 스크린샷
다음은 yaml-test-suite에서 시작된 yamlfixer의 스크린샷입니다.
📑 설치
가장 쉬운 설치 방법yamlfixer
은
pypi , 설명된 대로
아래에.
🐧 리눅스 설치
python3 -m pip install yamlfixer-opt-nc
🪟 윈도우 설치
python -m pip install yamlfixer-opt-nc
핍스 설정
For an optimal experience we recommand using pipx
.
To install :
pipx install yamlfixer-opt-nc
pipx list
To upgrade :
pipx upgrade yamlfixer-opt-nc
To uninstall :
pipx uninstall yamlfixer-opt-nc
🚀 사용법
이 소프트웨어는 보고된 일부 오류 및 경고를 자동으로 수정합니다.yamllint
.
usage: yamlfixer [-h] [-v] [-b] [-B BACKUPSUFFIX] [-d] [-D DIFF_FILE] [-e EXTENSIONS] [-f]
[-F] [-l] [-N] [-n] [-r LEVEL] [-j | -p | -s] [-t TABSIZE]
[-c CONFIG_FILE | -C CONFIG_DATA]
[FILE_or_DIR [FILE_or_DIR ...]]
Fix formatting problems in YAML documents. If no file is specified, then reads input
…
Still this cli
needed a Python runtime to be used.
🐳 Docker 이미지로 제공
Then we wanted to distribute it an easier way, which meaned :
package it as a Docker image.
At that point, DEVs took the relay and implemented Docker release on GH CI, and pushed images on DockerHub under optnc/yamlfixer :
🏃 GH 액션으로 전달
Now, we could use the Docker image to implement the following Public GH Action :
opt-nc
/
yamlfixer-액션
yamllint에서 보고한 일부 오류 및 경고를 수정하고 수정 사항이 포함된 풀 요청을 생성하는 Github 작업입니다.
❔ 소개
This github-action is based on the tool Yamlfixer
:
It automatically fixes some errors and warnings reported by yamllint
and creates a pull request that embeds the fixes.
🧰 사용법
See action.yml
You need a Github account that is allowed to create pull request on the inspected repository.
Find below an example that allows to check yaml
files on each push with verbose mode :
name: Lint yaml files
on: [push]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout my app
uses: actions/checkout@v3
- name: Lint yaml files
uses: opt-nc/yamlfixer-action
with:
options: --summary
user: ${{secrets.my_user}}
token: ${{secrets.my_user_password}}
The github-action creates :
- A new branch named
yamlfixer/patch/$branch_name
- The pull request to be merged into the working branch
🔖 리소스
Here are some useful resources…
... that could be released on the Marketplace :
🤖 액션 사용법
Here is the code (and... it's yaml
🐔🥚🐣) required to use the action in any workflow :
name: Lint yaml files
on: [push]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout my app
uses: actions/checkout@v2
- name: Lint yaml files
uses: opt-nc/yamlfixer-action
with:
yaml_file: .github/*.yml
options: --verbose
user: ${{secrets.my_user}}
token: ${{secrets.my_user_password}}
👉 이 작업은 작업 분기에 병합될 새 분기와 풀 요청을 생성하므로 이 코드 활동을 다른 소스 코드 제안으로 관리하고 검토할 수 있습니다.
🎦 라이브 데모
백 마디 말보다 더 가치 있는 라이브 비디오로서 Github Action이 dedicated repository에서 어떻게 실행되는지 알아보세요.
📷 자세한 예
❌ 보푸라기 실패로 인해 PR 거부됨
✔️ GH액션에서 오는 유효한 PR
코드 변경 검토:
🪙 투자수익률
이제 DEV와 OP 모두 CI의 도움으로 사전 예방적으로 yaml
품질을 향상시키는 데 사용하고 있으며 yaml
품질 문제는 당사daily workflow on GH Issue에서 관리됩니다.
👉 또한 GH Action을 사용하는 모든 팀은 전체 조직에서 동일한 수준의 품질을 가지고 있습니다.
🙏 감사의 글 🧑🤝🧑
DEVOPS 파이프라인에서 이 작업을 실현한 팀에 감사드립니다.
Jerome ALET 코어Yaml Fixer
개발자 및 통합자
Docker 패키징 및 GH 작업 개발용
DockerHub 게시에 대한 테스트 및 이 새로운 Gh 작업에 대한 지속적인 피드백
Reference
이 문제에 관하여(CI가 yaml을 확인하고 수정하도록 합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/optnc/let-ci-check-fix-your-yamls-kfa
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)