DevOps/Github

Github Actions 'use'을 통해 기존 action 사용하기

NCOOKIE_ 2022. 11. 3. 04:14

Github Actions는 일반적으로 Ci/CD의 자동화를 위해서 사용된다. 그리고 이를 위한 워크플로우(workflow)을 구성할 때 반복적으로 처리되는 작업들을 재사용이 용이하도록 제공되는 Action이라는 메커니즘이 있다. 헤더파일 같은 느낌이라고 보면 될 것 같다. github 측에서 공식 계정인 'actions'가 만든 action들이 기본적으로 추천되고, Github Marketplace를 통해 공개해둔 액션을 쉽게 검색해서 사용해볼 수 있다.

 

이러한 action들은 YAML 파일에서 use 라는 키워드를 통해 프로젝트에 적용할 수 있다. use 키에 사용하고자 하는 action의 정보를 작성하여 불러온다. {소유자}/{저장소명}@{참조자} 와 같은 형식이다. 여기서 참조자는 커밋 해쉬값도 사용할 수 있으나 주로 태그명을 사용한다. Github Actions에서 자주 사용되는 체크아웃 액션을 사용하려고 한다면 actions/checkout@v3 와 같이 작성할 수 있다. 글 작성일 기준 가장 최신 버전은 v3이다.

 

 

마지막으로 이 글을 작성하게 된 계기가 된 mysql 서버 세팅 방법이다. 아래와 같은 코드를 추가할 때 다른건 안 건들고 저렇게 값을 넣는 것만으로 동작을 한다는 것이 이해가 되지 않았었다. 찾아보니 저건 파라미터 값 같은 것이고, 실제 동작하는 본문은 samin이라는 사람이 marketplace에 action을 등록하여 우리가 사용할 수 있는 것이었다.

 

steps:
- uses: samin/mysql-action@v1
  with:
    host port: 3800 # Optional, default value is 3306. The port of host
    container port: 3307 # Optional, default value is 3306. The port of container
    character set server: 'utf8' # Optional, default value is 'utf8mb4'. The '--character-set-server' option for mysqld
    collation server: 'utf8_general_ci' # Optional, default value is 'utf8mb4_general_ci'. The '--collation-server' option for mysqld
    mysql version: '8.0' # Optional, default value is "latest". The version of the MySQL
    mysql database: 'some_test' # Optional, default value is "test". The specified database which will be create
    mysql root password: ${{ secrets.RootPassword }} # Required if "mysql user" is empty, default is empty. The root superuser password
    mysql user: 'developer' # Required if "mysql root password" is empty, default is empty. The superuser for the specified database. Of course you can use secrets, too
    mysql password: ${{ secrets.DatabasePassword }} # Required if "mysql user" exists. The password for the "mysql user"

 

 

참고링크

 

https://www.daleseo.com/github-actions-basics/

 

GitHub Actions의 소개와 핵심 개념

Engineering Blog by Dale Seo

www.daleseo.com

https://docs.github.com/en/actions/creating-actions/about-custom-actions#using-release-management-for-actions

 

About custom actions - GitHub Docs

About custom actions You can create actions by writing custom code that interacts with your repository in any way you'd like, including integrating with GitHub's APIs and any publicly available third-party API. For example, an action can publish npm module

docs.github.com

https://github.com/marketplace/actions/start-mysql

 

Start MySQL - GitHub Marketplace

Start a MySQL database

github.com