Skip to content

최근 진행 중인 미션 단건 조회 기능 (issue #31) #18

최근 진행 중인 미션 단건 조회 기능 (issue #31)

최근 진행 중인 미션 단건 조회 기능 (issue #31) #18

Workflow file for this run

name: CI
on:
pull_request:
types: [ opened, reopened, synchronize ]
branches: [ 'main' ]
jobs:
build-and-test:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
actions: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Early exit
if: ${{ contains(github.event.pull_request.labels.*.name, '백엔드') }}
run: |
gh run cancel ${{ github.run_id }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20.15.1'
- name: Install dependencies
run: |
cd frontend
npm install
- name: Run lint
continue-on-error: true
id: npm_run_lint
run: |
cd frontend
npm run lint
- name: Run build
continue-on-error: true
id: npm_run_build
run: |
pwd
cd frontend
npm run build
- name: Run test
continue-on-error: true
id: npm_run_test
run: |
cd frontend
npm run test
- name: Get teamMember List
id: teamMembers
uses: actions/github-script@v6
with:
script: |
const fs = require('fs');
const workers = JSON.parse(fs.readFileSync('.github/workflows/teamMember.json'));
const mention = context.payload.pull_request.assignees.map((user) => {
const login = user.login;
const mappedValue = workers[login];
return mappedValue ? `<@${mappedValue}>` : `No mapping found for ${login}`;
})
return mention.join(', ');
- name: slack mention
uses: slackapi/[email protected]
with:
channel-id: ${{ secrets.ISSUE_CHANNEL }}
payload: |
{
"text": "pr 테스트 결과",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "pr 테스트 \n lint : ${{ steps.npm_run_lint.outcome}} \n build : ${{ steps.npm_run_build.outcome}} \n test : ${{ steps.npm_run_test.outcome}} \n • 링크: <${{ github.event.pull_request.html_url }}|${{ github.event.pull_request.title }}> \n • pr 담당자: \${{ steps.teamMembers.outputs.result }}
}
}
]
}
env:
SLACK_BOT_TOKEN: ${{ secrets.BOT_TOKEN }}