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 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 --archive