github-pages-deploy-action/.github/workflows/build.yml
2021-02-06 10:14:37 -05:00

138 lines
3.4 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
- uses: actions/setup-node@v1.4.4
with:
node-version: 'v12.18.4'
registry-url: 'https://registry.npmjs.org'
- name: Install Yarn
run: npm install -g yarn
- name: Install and Test
run: |
yarn install
yarn lint
yarn test
- name: Uploade CodeCov Report
uses: codecov/codecov-action@v1
with:
token: ${{ secrets.CODECOV_TOKEN }}
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- uses: actions/setup-node@v1.4.4
with:
node-version: 'v12.18.4'
registry-url: 'https://registry.npmjs.org'
- name: Install Yarn
run: npm install -g yarn
- name: Build lib
run: |
yarn install
yarn build
- name: Rebuild production node_modules
run: |
yarn install --production
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
with:
persist-credentials: false
- uses: actions/setup-node@v1.4.4
with:
node-version: 'v12.18.4'
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
- name: Cleanup
if: ${{ matrix.branch == 'gh-pages' }}
run: git branch -d ${{ matrix.branch }}
# 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 \
]]