회사에서 사용할 github action을 작성하는데, 개인 repository에서 테스트를 먼저해보고 회사의 github package에 수정을 하곤 했습니다.
매번 package 이름을 변경하는 것은 너무 귀찮은 일이었고, 적어도 직접 action을 돌릴때는 패키지를 선택할 수 있게 하는게 편할 것 같았습니다.
그래서 패키지중에서 하나를 선택하여 github-script를 돌릴 수 있게 하였습니다.
name: Package 선택 테스트용
on:
workflow_dispatch:
inputs:
packageName:
type: choice
required: true
default: '@devstefancho/github-script'
description: package를 선택하세요
options:
- '@devstefancho/github-script'
- '@xxx/git-action-script' # 회사에서 아용하는 패키지명 예시
jobs:
create_prs:
runs-on: ubuntu-20.04
steps:
- uses: actions/setup-node@v3
with:
node-version: 16
# 이름만 잘라서 등록해야하므로 cut을 사용했습니다. (@devstefancho/github-script 패키지라면 @devstefancho가 OWNER임)
- name: Install NPM
run: |
npm init --y
echo "//npm.pkg.github.com/:_authToken=${{ secrets.npm_token }}" > ~/.npmrc
echo $(echo $NPM_PACKAGE | cut -d\/ -f 1)":registry=https://npm.pkg.github.com" >> ~/.npmrc
cat ~/.npmrc
npm install $NPM_PACKAGE
env:
NPM_PACKAGE: ${{ inputs.packageName }}
- name: Print Current Version
run: |
echo "Print NPM Version Info"
grep "$NPM_PACKAGE" package.json
env:
NPM_PACKAGE: ${{ inputs.packageName }}
# package명이 변수이므로 process.env에서 가져다 사용합니다.
- name: Create PR for alpha, staging after prod merged
uses: actions/github-script@v6
with:
script: |
const { NPM_PACKAGE } = process.env
const { creator } = require(NPM_PACKAGE)
console.log(creator)
console.log('------------ done ------------')
env:
NPM_PACKAGE: ${{ inputs.packageName }}