Skip to content

refactor(ci): use variables on commiter name & email #2676

refactor(ci): use variables on commiter name & email

refactor(ci): use variables on commiter name & email #2676

Workflow file for this run

name: Node.js CI/CD
on:
push:
branches:
- main
pull_request:
jobs:
lint:
name: Check Format
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4.1.4
- name: Use Node.js ${{ vars.NODE_VERSION }}
uses: actions/setup-node@v4.0.2
with:
node-version: ${{ vars.NODE_VERSION }}
cache: npm
- name: Install Dependencies
run: npm ci --ignore-scripts
- name: Lint
run: npm run lint
build:
name: Build Action Assets
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4.1.4
- name: Use Node.js ${{ vars.NODE_VERSION }}
uses: actions/setup-node@v4.0.2
with:
node-version: ${{ vars.NODE_VERSION }}
cache: npm
- name: Install Dependencies
run: npm ci --ignore-scripts
- name: Build
run: npm run build
- name: Upload Action Assets
uses: actions/upload-artifact@v4.3.3
with:
name: dist
path: dist
unit-test:
name: Unit Test
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4.1.4
- name: Use Node.js ${{ vars.NODE_VERSION }}
uses: actions/setup-node@v4.0.2
with:
node-version: ${{ vars.NODE_VERSION }}
cache: npm
- name: Install Dependencies
run: npm ci --ignore-scripts
- name: Test
run: npm test -- --coverage
- name: Report Code Coverage to codecov
uses: codecov/codecov-action@v4.3.1
with:
token: ${{ secrets.CODECOV_TOKEN }}
integration-test:
name: Integration Test
needs: [build]
strategy:
fail-fast: false
matrix:
os:
- ubuntu-22.04
- ubuntu-20.04
- macos-12
- macos-11
- windows-2022
- windows-2019
runs-on: ${{ matrix.os }}
permissions:
issues: write
pull-requests: write
steps:
- name: Checkout
uses: actions/checkout@v4.1.4
- name: Download Action Assets
uses: actions/download-artifact@v4.1.7
with:
name: dist
path: dist
- name: Execute GitHub Action
uses: ./
with:
image-url: ${{ vars.LGTM_IMAGE_URI }}
diff:
name: Compare Build Assets
if: github.event_name == 'pull_request'
needs: [build]
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- name: Checkout
uses: actions/checkout@v4.1.4
with:
ref: ${{ vars.RELEASE_BRANCH }}
sparse-checkout: |
dist
- name: Use Node.js ${{ vars.NODE_VERSION }}
uses: actions/setup-node@v4.0.2
with:
node-version: ${{ vars.NODE_VERSION }}
- name: Download Current Action Assets
uses: actions/download-artifact@v4.1.7
with:
name: dist
path: current
- name: Setup js-beautify to compare minified js files
run: |
npm install --global js-beautify
git config --local diff.minjs.textconv js-beautify
echo "index.js diff=minjs" > .gitattributes
- name: Compare
id: compare
continue-on-error: true
run: |
echo '# Compare ${{ github.sha }} to main' >> $GITHUB_STEP_SUMMARY
echo '```diff' >> $GITHUB_STEP_SUMMARY
git diff --no-index ./dist/ ./current/ >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
git diff --no-index --exit-code ./dist/ ./current/
- name: Report diff
if: steps.compare.outcome == 'failure'
uses: actions/github-script@v7
with:
script: |
const message = 'There is a difference in the build results.'
core.warning(message)
await github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: `${message} [Show More](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})`
})
deploy:
name: Deploy to Release branch
if: github.event_name == 'push'
needs: [build]
runs-on: ubuntu-latest
steps:
- name: Checkout Release Branch
uses: actions/checkout@v4.1.4
with:
ref: ${{ vars.RELEASE_BRANCH }}
- name: Restore Documents from main
run: |
git fetch --no-tags --depth=1 origin +refs/heads/main:refs/remotes/origin/main
git restore --source=origin/main -- *.md
git restore --source=origin/main -- LICENSE
git restore --source=origin/main -- action.yml
git restore --source=origin/main -- images/*.png
git restore --source=origin/main -- .github/workflows/release.yml
- name: Download Build Assets
uses: actions/download-artifact@v4.1.7
with:
name: dist
path: dist
- name: Commit and Push
continue-on-error: true
run: |
git config user.name ${{ vars.GH_ACTIONS_COMMIT_NAME }}
git config user.email ${{ vars.GH_ACTIONS_COMMIT_EMAIL }}
git add .
git commit -m "build: deploy via ${{ github.sha }}"
git push