alpacon-websh-action

Alpacon 워크스페이스의 원격 서버에서 쉘 명령을 실행합니다. 특정 사용자 및 그룹으로 명령 실행, 환경 변수 전달, 멀티라인 스크립트를 지원합니다.

입력값

이름설명필수기본값
workspace-urlAlpacon 워크스페이스 URL
api-tokenAlpacon API 토큰
target대상 서버 이름
script실행할 쉘 명령 또는 스크립트
username명령을 실행할 사용자 이름 (예: root, ubuntu)아니오
groupname명령을 실행할 그룹 이름 (username 필요)아니오
env환경 변수 (줄당 하나, KEY=VALUE 또는 KEY 형식)아니오

사용법

기본 명령 실행

- name: Deploy application
  uses: alpacax/alpacon-websh-action@v1
  with:
    workspace-url: ${{ secrets.ALPACON_WORKSPACE_URL }}
    api-token: ${{ secrets.ALPACON_API_TOKEN }}
    target: 'prod-server'
    script: |
      cd /opt/myapp
      git pull
      npm install
      pm2 restart app

특정 사용자와 그룹으로 실행

- name: Deploy with www-data group
  uses: alpacax/alpacon-websh-action@v1
  with:
    workspace-url: ${{ secrets.ALPACON_WORKSPACE_URL }}
    api-token: ${{ secrets.ALPACON_API_TOKEN }}
    target: 'web-server'
    username: 'ubuntu'
    groupname: 'www-data'
    script: cp -r /tmp/build/* /var/www/html/

환경 변수 전달

- name: Run with environment variables
  uses: alpacax/alpacon-websh-action@v1
  with:
    workspace-url: ${{ secrets.ALPACON_WORKSPACE_URL }}
    api-token: ${{ secrets.ALPACON_API_TOKEN }}
    target: 'prod-server'
    env: |
      APP_ENV=production
      DB_HOST=localhost
      LOG_LEVEL=info
    script: |
      echo "Deploying to $APP_ENV"
      systemctl restart myapp

env 입력은 두 가지 형식을 지원합니다:

  • KEY=VALUE: 지정된 값으로 변수를 설정
  • KEY: 러너 환경의 변수를 전달

참고

  • alpacon-setup-action을 먼저 실행해야 합니다
  • script의 각 줄은 별도의 명령으로 실행됩니다
  • 빈 줄과 주석 줄(#으로 시작)은 건너뜁니다
  • groupname을 사용하려면 username이 설정되어야 합니다

함께 보기

출처