GitHub Actions 마켓플레이스에서 나만의 액션을 만드는 방법에 대해 알아보겠습니다.
GitHub Actions는 CI/CD(지속적 통합 및 지속적 배포)를 자동화할 수 있는 강력한 도구입니다.
자신만의 액션을 만들어 GitHub 워크플로우를 더욱 효율적으로 만들 수 있습니다. 그럼, 시작해볼까요?
GitHub Actions란?
GitHub Actions는 소스 코드 리포지토리에 작업(작업 단위)을 자동으로 실행할 수 있는 기능입니다.
이를 통해 코드 빌드, 테스트, 배포 등 여러 작업을 자동화할 수 있습니다. GitHub Actions는 workflow, jobs, steps로 구성됩니다.
- Workflow: 작업의 흐름을 정의합니다.
- Job: 워크플로우의 한 단위 작업입니다.
- Step: Job 내에서 실행되는 개별 작업입니다.
나만의 액션 만들기
GitHub Actions에서 액션은 반복적으로 사용할 수 있는 작업 단위입니다. 액션은 크게 두 가지 유형이 있습니다.
- Docker 컨테이너 액션
- JavaScript 액션
1. Docker 컨테이너 액션
Docker 컨테이너 액션은 Docker 이미지를 사용하여 액션을 만듭니다. 이 방법은 복잡한 환경 구성이 필요할 때 유용합니다.
Docker 컨테이너 액션 만들기
1. 리포지토리 준비
먼저, 액션을 위한 새로운 리포지토리를 만듭니다. 예를 들어 my-docker-action이라는 이름의 리포지토리를 생성합니다.
2. Dockerfile 작성
리포지토리에 Dockerfile을 생성합니다. 이 파일은 액션의 동작을 정의하는 Docker 이미지를 구성합니다.
# 기본 이미지 설정
FROM ubuntu:20.04
# 필요한 패키지 설치
RUN apt-get update && apt-get install -y curl
# 액션 코드 복사
COPY entrypoint.sh /entrypoint.sh
# 실행 권한 부여
RUN chmod +x /entrypoint.sh
# 기본 명령어 설정
ENTRYPOINT ["/entrypoint.sh"]
3. Entrypoint 스크립트 작성
entrypoint.sh 파일을 작성하여 액션의 주 동작을 정의합니다. 예를 들어, 다음과 같이 작성할 수 있습니다.
#!/bin/bash
echo "Hello from my Docker action!"
4. action.yml 파일 작성
액션을 정의하는 action.yml 파일을 작성합니다. 이 파일에는 액션의 메타데이터와 입력, 출력 등이 정의됩니다.
name: 'My Docker Action'
description: 'A simple Docker action'
runs:
using: 'docker'
image: 'Dockerfile'
5. 커밋 및 푸시
모든 파일을 리포지토리에 커밋하고 푸시합니다.
git add .
git commit -m "Initial commit"
git push origin main
2. JavaScript 액션
JavaScript 액션은 Node.js 환경에서 실행되는 액션입니다. 이 방법은 Node.js 코드로 액션을 작성할 수 있어 간단한 작업에 적합합니다.
JavaScript 액션 만들기
1. 리포지토리 준비
my-javascript-action이라는 이름의 새로운 리포지토리를 생성합니다.
2. JavaScript 코드 작성
리포지토리에 index.js 파일을 작성합니다. 이 파일은 액션의 로직을 구현합니다.
const core = require('@actions/core');
try {
const name = core.getInput('name');
console.log(`Hello ${name}!`);
} catch (error) {
core.setFailed(error.message);
}
3. package.json 및 dependencies 설정
package.json 파일을 생성하고 필요한 패키지를 설치합니다.
{
"name": "my-javascript-action",
"version": "1.0.0",
"main": "index.js",
"dependencies": {
"@actions/core": "^1.9.0"
}
}
패키지를 설치합니다.
npm install
4. action.yml 파일 작성
JavaScript 액션의 메타데이터를 정의하는 action.yml 파일을 작성합니다.
name: 'My JavaScript Action'
description: 'A simple JavaScript action'
inputs:
name:
description: 'Name to greet'
required: true
runs:
using: 'node12'
main: 'index.js'
5. 커밋 및 푸시
모든 파일을 리포지토리에 커밋하고 푸시합니다.
git add .
git commit -m "Initial commit"
git push origin main
액션 사용하기
이제 액션을 GitHub 워크플로우에서 사용할 수 있습니다.
.github/workflows 디렉토리에 워크플로우 파일을 생성하고 다음과 같이 액션을 사용합니다.
name: Example Workflow
on: [push]
jobs:
example:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Run my Docker action
uses: your-username/my-docker-action@v1
with:
# 필요한 입력값 정의
- name: Run my JavaScript action
uses: your-username/my-javascript-action@v1
with:
name: 'World'
GitHub Actions에서 나만의 액션을 만드는 방법에 대해 알아보았습니다.
Docker 컨테이너 액션과 JavaScript 액션 두 가지 방법을 살펴보았는데요, 상황에 따라 적절한 방법을 선택하여 사용하면 됩니다.
액션을 잘 활용하면 CI/CD 파이프라인을 훨씬 더 효율적으로 구성할 수 있습니다.
추가로 궁금한 점이 있거나 도움이 필요하다면 언제든지 댓글로 질문해 주세요. 감사합니다!
공감과 댓글은 저에게 큰 힘이 됩니다.
Starting Google Play App Distribution! "Tester Share" for Recruiting 20 Testers for a Closed Test.
'Program Development Tips > GitHub Actions' 카테고리의 다른 글
GitHub Actions vs Jenkins vs GitLab CI: 어느 도구가 더 나을까? (1) | 2024.09.01 |
---|---|
GitHub Actions의 CI/CD 모니터링과 디버깅 방법 (0) | 2024.09.01 |
GitHub Actions 마켓플레이스 활용법 (0) | 2024.09.01 |
GitHub Actions를 활용한 자동 배포(CD) 설정 방법 (0) | 2024.08.31 |
GitHub Actions와 DevOps: CI/CD 파이프라인의 완성 (1) | 2024.08.31 |