2019-12-03 10:28:59 -05:00
name : Build and Test
2019-10-25 10:52:59 -04:00
on :
pull_request :
push :
branches :
2020-07-14 09:23:30 -04:00
- main
2019-12-03 10:28:59 -05:00
- releases/*
2019-10-25 10:52:59 -04:00
jobs :
2019-12-03 10:28:59 -05:00
build :
runs-on : ubuntu-latest
steps :
2020-01-27 10:21:50 -05:00
- uses : actions/setup-node@v1
with :
2022-02-28 16:17:29 -05:00
node-version : 16. x
2022-03-01 13:02:13 -05:00
- uses : actions/checkout@v3
2019-12-03 10:28:59 -05:00
- run : npm ci
- run : npm run build
- run : npm run format-check
- run : npm run lint
2019-12-12 13:49:26 -05:00
- run : npm test
2019-12-03 10:28:59 -05:00
- name : Verify no unstaged changes
run : __test__/verify-no-unstaged-changes.sh
2019-10-25 10:52:59 -04:00
test :
strategy :
matrix :
2019-12-03 10:28:59 -05:00
runs-on : [ ubuntu-latest, macos-latest, windows-latest]
runs-on : ${{ matrix.runs-on }}
2019-10-25 10:52:59 -04:00
steps :
2019-12-03 10:28:59 -05:00
# Clone this repo
- name : Checkout
2022-03-01 13:02:13 -05:00
uses : actions/checkout@v3
2019-12-03 10:28:59 -05:00
# Basic checkout
2020-03-10 10:45:50 -04:00
- name : Checkout basic
2019-12-03 10:28:59 -05:00
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
2020-03-10 10:45:50 -04:00
- name : Checkout clean
2019-12-03 10:28:59 -05:00
uses : ./
with :
ref : test-data/v2/basic
path : basic
- name : Verify clean
shell : bash
run : __test__/verify-clean.sh
# Side by side
2020-03-10 10:45:50 -04:00
- name : Checkout side by side 1
2019-12-03 10:28:59 -05:00
uses : ./
with :
ref : test-data/v2/side-by-side-1
path : side-by-side-1
2020-03-10 10:45:50 -04:00
- name : Checkout side by side 2
2019-12-03 10:28:59 -05:00
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
2020-03-10 10:45:50 -04:00
- name : Checkout LFS
2019-12-03 10:28:59 -05:00
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
2019-12-12 13:16:16 -05:00
2020-03-05 14:21:59 -05:00
# Submodules false
2020-03-10 10:45:50 -04:00
- name : Checkout submodules false
2020-03-05 14:21:59 -05:00
uses : ./
with :
2020-03-10 10:45:50 -04:00
ref : test-data/v2/submodule-ssh-url
2020-03-05 14:21:59 -05:00
path : submodules-false
- name : Verify submodules false
run : __test__/verify-submodules-false.sh
# Submodules one level
2020-03-10 10:45:50 -04:00
- name : Checkout submodules true
2020-03-05 14:21:59 -05:00
uses : ./
with :
2020-03-10 10:45:50 -04:00
ref : test-data/v2/submodule-ssh-url
2020-03-05 14:21:59 -05:00
path : submodules-true
submodules : true
- name : Verify submodules true
run : __test__/verify-submodules-true.sh
# Submodules recursive
2020-03-10 10:45:50 -04:00
- name : Checkout submodules recursive
2020-03-05 14:21:59 -05:00
uses : ./
with :
2020-03-10 10:45:50 -04:00
ref : test-data/v2/submodule-ssh-url
2020-03-05 14:21:59 -05:00
path : submodules-recursive
submodules : recursive
- name : Verify submodules recursive
run : __test__/verify-submodules-recursive.sh
2020-01-27 10:21:50 -05:00
# Basic checkout using REST API
- name : Remove basic
if : runner.os != 'windows'
run : rm -rf basic
- name : Remove basic (Windows)
if : runner.os == 'windows'
shell : cmd
run : rmdir /s /q basic
- name : Override git version
if : runner.os != 'windows'
run : __test__/override-git-version.sh
- name : Override git version (Windows)
if : runner.os == 'windows'
run : __test__\\override-git-version.cmd
2020-03-10 10:45:50 -04:00
- name : Checkout basic using REST API
2020-01-27 10:21:50 -05:00
uses : ./
with :
ref : test-data/v2/basic
path : basic
- name : Verify basic
run : __test__/verify-basic.sh --archive
test-proxy :
runs-on : ubuntu-latest
container :
image : alpine/git:latest
options : --dns 127.0.0.1
services :
squid-proxy :
2022-11-10 15:54:12 -05:00
image : ubuntu/squid:latest
2020-01-27 10:21:50 -05:00
ports :
- 3128 : 3128
env :
https_proxy : http://squid-proxy:3128
steps :
# Clone this repo
- name : Checkout
2022-03-01 13:02:13 -05:00
uses : actions/checkout@v3
2020-01-27 10:21:50 -05:00
# Basic checkout using git
2020-03-10 10:45:50 -04:00
- name : Checkout basic
2020-01-27 10:21:50 -05:00
uses : ./
with :
ref : test-data/v2/basic
path : basic
- name : Verify basic
run : __test__/verify-basic.sh
# Basic checkout using REST API
- name : Remove basic
run : rm -rf basic
- name : Override git version
run : __test__/override-git-version.sh
- name : Basic checkout using REST API
uses : ./
with :
ref : test-data/v2/basic
path : basic
- name : Verify basic
run : __test__/verify-basic.sh --archive
test-bypass-proxy :
2019-12-12 13:16:16 -05:00
runs-on : ubuntu-latest
2020-01-27 10:21:50 -05:00
env :
https_proxy : http://no-such-proxy:3128
no_proxy : api.github.com,github.com
2019-12-12 13:16:16 -05:00
steps :
# Clone this repo
- name : Checkout
2022-03-01 13:02:13 -05:00
uses : actions/checkout@v3
2019-12-12 13:16:16 -05:00
2020-01-27 10:21:50 -05:00
# Basic checkout using git
2020-03-10 10:45:50 -04:00
- name : Checkout basic
2019-12-12 13:16:16 -05:00
uses : ./
with :
ref : test-data/v2/basic
path : basic
2020-01-27 10:21:50 -05:00
- name : Verify basic
run : __test__/verify-basic.sh
- name : Remove basic
run : rm -rf basic
# Basic checkout using REST API
- name : Override git version
run : __test__/override-git-version.sh
2020-03-10 10:45:50 -04:00
- name : Checkout basic using REST API
2020-01-27 10:21:50 -05:00
uses : ./
with :
ref : test-data/v2/basic
path : basic
2019-12-12 13:16:16 -05:00
- name : Verify basic
run : __test__/verify-basic.sh --archive
2022-04-20 21:37:43 -04:00
test-git-container :
runs-on : ubuntu-latest
container : bitnami/git:latest
steps :
# Clone this repo
- name : Checkout
uses : actions/checkout@v3
with :
path : v3
# Basic checkout using git
- name : Checkout basic
uses : ./v3
with :
ref : test-data/v2/basic
- name : Verify basic
run : |
if [ ! -f "./basic-file.txt" ]; then
echo "Expected basic file does not exist"
exit 1
fi
# Verify .git folder
if [ ! -d "./.git" ]; then
echo "Expected ./.git folder to exist"
exit 1
fi
# Verify auth token
git config --global --add safe.directory "*"
git fetch --no-tags --depth=1 origin +refs/heads/main:refs/remotes/origin/main
# needed to make checkout post cleanup succeed
- name : Fix Checkout v3
uses : actions/checkout@v3
with :
path : v3