GitHub Actions에서 dotfiles 자동 테스트
8499 단어 시GitHubActionsdotfilesGitHub
소개
저는 평소 Mac에서 작업하고 있지만 Linux에 dotfiles를 가져 가고 싶을 수 있습니다.
하지만 언제나 에러가 나오므로 곤란해 버립니다.
(새 Mac을 다시 설정하는 경우에도 마찬가지)
그래서 dotfiles의 품질을 유지하기 위해 GitHub Actions을 사용하여 CI를 사용해 보았습니다.
.bash_profile
및 .bashrc
불러오기 brew bundle
실행(Mac 전용) (자신의 리포지토리에 PR하는 습관이 없기 때문에, 항상 master에 직접 push하고 있습니다)
git의 내용이 변경되면 자동으로 테스트가 실행됩니다.
배지
의미
<「Linux라면 또 에러가 나올거야. 유감w」
< "예쁘게 쓸 수있어 좋다!"
라고 말할 수 있습니다.
dotfiles 구성
rtakasuke/.dotfiles at 기사 게시 시점
$ tree -a -I ".git|.gitignore|archive|gitconfig|iTerm2|tigrc|README.md"
.
├── .github
│ └── workflows
│ ├── lint.yml # 静的解析用ワークフロー
│ ├── linux.yml # 実行時エラーチェック用ワークフロー (Linux)
│ └── macos.yml # 実行時エラーチェック用ワークフロー (Mac)
├── Brewfile
├── bash_profile
├── bashrc
├── bin
│ └── init.sh # セットアップスクリプト ( $HOME にシンボリックリンクを作成 )
└── nvim # Neovim + dein.vim の設定ファイル
├── dein.toml
├── dein_statusline.toml
└── init.vim
GitHub Actions 워크플로
.github/workflows
에 yaml 파일을 넣어 설정을 설명합니다.
자세한 구문은 다음을 참조하십시오.
$ tree -a -I ".git|.gitignore|archive|gitconfig|iTerm2|tigrc|README.md"
.
├── .github
│ └── workflows
│ ├── lint.yml # 静的解析用ワークフロー
│ ├── linux.yml # 実行時エラーチェック用ワークフロー (Linux)
│ └── macos.yml # 実行時エラーチェック用ワークフロー (Mac)
├── Brewfile
├── bash_profile
├── bashrc
├── bin
│ └── init.sh # セットアップスクリプト ( $HOME にシンボリックリンクを作成 )
└── nvim # Neovim + dein.vim の設定ファイル
├── dein.toml
├── dein_statusline.toml
└── init.vim
.github/workflows
에 yaml 파일을 넣어 설정을 설명합니다.자세한 구문은 다음을 참조하십시오.
런타임 오류 검사 ( Mac, Linux )
Run brew bundle ( Mac )
- name: Run brew bundle
run: brew bundle
Brewfile
에 설명된 앱을 Mac에 설치할 수 있는지 테스트합니다.Run init.sh
- name: Run init.sh
run: ${GITHUB_WORKSPACE}/bin/init.sh
설치 스크립트 (심볼릭 링크 만들기)가 올바르게 작동하는지 테스트합니다.
오류가 발생하면 종료 코드가 0이되지 않도록 스크립트 측에서
set -e
명령을 실행하고 있습니다.Load .bash_profile & .bashrc
- name: Load .bash_profile
run: |
bash ~/.bash_profile 2> error.log; cat error.log
if [ -s error.log ]; then false; fi
- name: Load .bashrc
run: |
bash ~/.bashrc 2> error.log; cat error.log
if [ -s error.log ]; then false; f
.bash_profile 또는 .bashrc를 읽을 때 표준 오류 출력이 없는지 테스트합니다.
셋업 커맨드 때처럼
set -e
커맨드를 사용하면 쉘이 떨어져 버리기 때문에 고통의 책입니다.정적 분석
Check bin/init.sh
- name: Check bin/init.sh
run: shellcheck ${GITHUB_WORKSPACE}/bin/init.sh
shellcheck을 사용하여 설치 스크립트 작성에 문제가 없는지 테스트합니다.
Check .bash_profile & .bashrc
- name: Check .bash_profile
run: shellcheck ${GITHUB_WORKSPACE}/bash_profile --exclude=SC2148,SC1090
- name: Check .bashrc
run: shellcheck ${GITHUB_WORKSPACE}/bashrc --exclude=SC2148,SC1090
동일.
그러나 일부 경고를 무시하도록 설정했습니다.
SC2148 : shebang이 쓰지 않을 때의 경고이지만 .bash_profile에 쓰는 것이 아니므로 무시
SC1090 : 외부 소스를 읽을 수 없기 때문에 경고이지만 무시.
Check nvim/init.vim
- name: Check nvim/init.vim
run: vint ${GITHUB_WORKSPACE}/nvim/*.vim -cstV --enable-neovim
vint을 사용하여 Neovim 구성 파일을 작성하는 데 문제가 없는지 테스트합니다.
Check nvim/*.toml
- name: Check nvim/*.toml
run: |
curl -sL https://raw.githubusercontent.com/vmchale/tomlcheck/master/sh/check | sh || true
find ${GITHUB_WORKSPACE}/nvim/*.toml -type f | xargs -I {} ${GITHUB_WORKSPACE}/tomlcheck --file {}
tomlcheck을 사용하여 Neovim 플러그인을 설명하는 TOML 파일을 작성하는 데 문제가 없는지 테스트합니다.
와일드카드를 사용할 수 없었기 때문에 고통의 방법입니다.
마지막으로
아직 개선의 여지는 많다고 생각하므로, 의견 주시면 기쁩니다.
Reference
이 문제에 관하여(GitHub Actions에서 dotfiles 자동 테스트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/rtakasuke/items/85133e396ba766458c20
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(GitHub Actions에서 dotfiles 자동 테스트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/rtakasuke/items/85133e396ba766458c20텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)