github-pages-deploy-action/.github/workflows/build.yml
2022-01-29 10:18:53 -05:00

134 lines
3.3 KiB
YAML

name: unit-tests
on:
pull_request:
branches:
- 'dev*'
- 'releases/v*'
push:
branches:
- 'dev*'
tags-ignore:
- '*.*'
jobs:
unit-tests:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2.4.0
- uses: actions/setup-node@v2.5.1
with:
node-version: 'v14.18.1'
registry-url: 'https://registry.npmjs.org'
- name: Install Yarn
run: npm install -g yarn
- name: Install and Test
run: |
yarn install --frozen-lockfile
yarn lint
yarn test
- name: Uploade CodeCov Report
uses: codecov/codecov-action@v2.1.0
with:
token: ${{ secrets.CODECOV_TOKEN }}
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2.4.0
- uses: actions/setup-node@v2.5.1
with:
node-version: 'v14.18.1'
registry-url: 'https://registry.npmjs.org'
- name: Install Yarn
run: npm install -g yarn
- name: Build lib
run: |
yarn install --frozen-lockfile
yarn build
- name: Rebuild production node_modules
run: |
yarn install --production --frozen-lockfile
ls node_modules
- name: artifact
uses: actions/upload-artifact@v2
with:
name: dist
path: |
lib
node_modules
integration:
runs-on: ubuntu-latest
needs: build
strategy:
matrix:
branch: ['gh-pages', 'no-pages']
commit: ['singleCommit', 'add commits']
max-parallel: 1
steps:
- name: Checkout
uses: actions/checkout@v2.4.0
with:
persist-credentials: false
- uses: actions/setup-node@v2.5.1
with:
node-version: 'v14.18.1'
registry-url: 'https://registry.npmjs.org'
- name: Download artifact
uses: actions/download-artifact@v2
with:
name: dist
- name: Deploy
id: unmodified
uses: ./
with:
folder: integration
branch: ${{ matrix.branch }}
single-commit: ${{ matrix.commit == 'singleCommit' }}
dry-run: true
# Usually, this should be skipped, but if the upstream gh-pages
# branch doesn't match ours, it should still be a success.
- name: Check step output
run: |
[[ \
${{steps.unmodified.outputs.deployment-status}} = skipped || \
${{steps.unmodified.outputs.deployment-status}} = success \
]]
- name: Tweak content to publish to existing branch
if: ${{ matrix.branch == 'gh-pages' }}
run: |
echo "<!-- just sayin -->" >> integration/index.html
- name: Deploy with modifications to existing branch
id: modified
uses: ./
if: ${{ matrix.branch == 'gh-pages' }}
with:
folder: integration
branch: ${{ matrix.branch }}
single-commit: ${{ matrix.commit == 'singleCommit' }}
dry-run: true
# The modified deployment should be a success, and not skipped.
- name: Check step output
if: ${{ matrix.branch == 'gh-pages' }}
run: |
[[ \
${{steps.modified.outputs.deployment-status}} = success \
]]