You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
105 lines
2.6 KiB
YAML
105 lines
2.6 KiB
YAML
name: Build and Test
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches:
|
|
- master
|
|
- releases/*
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v1 # todo: switch to v2
|
|
- run: npm ci
|
|
- run: npm run build
|
|
- run: npm run format-check
|
|
- run: npm run lint
|
|
- run: npm run pack
|
|
- run: npm run gendocs
|
|
- name: Verify no unstaged changes
|
|
run: __test__/verify-no-unstaged-changes.sh
|
|
|
|
test:
|
|
strategy:
|
|
matrix:
|
|
runs-on: [ubuntu-latest, macos-latest, windows-latest]
|
|
runs-on: ${{ matrix.runs-on }}
|
|
|
|
steps:
|
|
# Clone this repo
|
|
- name: Checkout
|
|
uses: actions/checkout@v2-beta
|
|
|
|
# Basic checkout
|
|
- name: Basic checkout
|
|
uses: ./
|
|
with:
|
|
ref: test-data/v2/basic
|
|
path: basic
|
|
- name: Verify basic
|
|
shell: bash
|
|
run: __test__/verify-basic.sh
|
|
|
|
# Clean
|
|
- name: Modify work tree
|
|
shell: bash
|
|
run: __test__/modify-work-tree.sh
|
|
- name: Clean checkout
|
|
uses: ./
|
|
with:
|
|
ref: test-data/v2/basic
|
|
path: basic
|
|
- name: Verify clean
|
|
shell: bash
|
|
run: __test__/verify-clean.sh
|
|
|
|
# Side by side
|
|
- name: Side by side checkout 1
|
|
uses: ./
|
|
with:
|
|
ref: test-data/v2/side-by-side-1
|
|
path: side-by-side-1
|
|
- name: Side by side checkout 2
|
|
uses: ./
|
|
with:
|
|
ref: test-data/v2/side-by-side-2
|
|
path: side-by-side-2
|
|
- name: Verify side by side
|
|
shell: bash
|
|
run: __test__/verify-side-by-side.sh
|
|
|
|
# LFS
|
|
- name: LFS checkout
|
|
uses: ./
|
|
with:
|
|
repository: actions/checkout # hardcoded, otherwise doesn't work from a fork
|
|
ref: test-data/v2/lfs
|
|
path: lfs
|
|
lfs: true
|
|
- name: Verify LFS
|
|
shell: bash
|
|
run: __test__/verify-lfs.sh
|
|
|
|
test-job-container:
|
|
runs-on: ubuntu-latest
|
|
container: pstauffer/curl:latest
|
|
steps:
|
|
# Clone this repo
|
|
# todo: after v2-beta contains the latest changes, switch this to "uses: actions/checkout@v2-beta". Also check if can switch to "alpine:latest"
|
|
- name: Checkout
|
|
run: |
|
|
curl --location --user token:${{ github.token }} --output checkout.tar.gz https://api.github.com/repos/actions/checkout/tarball/${{ github.sha }}
|
|
tar -xzf checkout.tar.gz
|
|
mv */* ./
|
|
|
|
# Basic checkout
|
|
- name: Basic checkout
|
|
uses: ./
|
|
with:
|
|
ref: test-data/v2/basic
|
|
path: basic
|
|
- name: Verify basic
|
|
run: __test__/verify-basic.sh container
|