2019-12-03 18:28:59 +03:00
name : Build and Test
2019-10-25 17:52:59 +03:00
on :
pull_request :
push :
branches :
2020-07-14 16:23:30 +03:00
- main
2019-12-03 18:28:59 +03:00
- releases/*
2019-10-25 17:52:59 +03:00
2024-02-21 15:56:19 +03:00
# Note that when you see patterns like "ref: test-data/v2/basic" within this workflow,
# these refer to "test-data" branches on this actions/checkout repo.
# (For example, test-data/v2/basic -> https://github.com/actions/checkout/tree/test-data/v2/basic)
2019-10-25 17:52:59 +03:00
jobs :
2019-12-03 18:28:59 +03:00
build :
runs-on : ubuntu-latest
steps :
2020-01-27 18:21:50 +03:00
- uses : actions/setup-node@v1
with :
2023-08-29 18:01:52 +03:00
node-version : 20. x
2022-03-01 21:02:13 +03:00
- uses : actions/checkout@v3
2019-12-03 18:28:59 +03:00
- run : npm ci
- run : npm run build
- run : npm run format-check
- run : npm run lint
2019-12-12 21:49:26 +03:00
- run : npm test
2019-12-03 18:28:59 +03:00
- name : Verify no unstaged changes
run : __test__/verify-no-unstaged-changes.sh
2019-10-25 17:52:59 +03:00
test :
strategy :
matrix :
2019-12-03 18:28:59 +03:00
runs-on : [ ubuntu-latest, macos-latest, windows-latest]
runs-on : ${{ matrix.runs-on }}
2019-10-25 17:52:59 +03:00
steps :
2019-12-03 18:28:59 +03:00
# Clone this repo
- name : Checkout
2022-03-01 21:02:13 +03:00
uses : actions/checkout@v3
2019-12-03 18:28:59 +03:00
# Basic checkout
2020-03-10 17:45:50 +03:00
- name : Checkout basic
2019-12-03 18:28:59 +03: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 17:45:50 +03:00
- name : Checkout clean
2019-12-03 18:28:59 +03: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 17:45:50 +03:00
- name : Checkout side by side 1
2019-12-03 18:28:59 +03:00
uses : ./
with :
ref : test-data/v2/side-by-side-1
path : side-by-side-1
2020-03-10 17:45:50 +03:00
- name : Checkout side by side 2
2019-12-03 18:28:59 +03: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
2023-09-22 20:30:36 +03:00
# Filter
- name : Fetch filter
uses : ./
with :
filter : 'blob:none'
path : fetch-filter
- name : Verify fetch filter
run : __test__/verify-fetch-filter.sh
2023-06-09 16:08:21 +03:00
# Sparse checkout
- name : Sparse checkout
uses : ./
with :
sparse-checkout : |
__test__
.github
dist
path : sparse-checkout
- name : Verify sparse checkout
run : __test__/verify-sparse-checkout.sh
2024-02-21 15:56:19 +03:00
# Disabled sparse checkout in existing checkout
- name : Disabled sparse checkout
uses : ./
with :
path : sparse-checkout
- name : Verify disabled sparse checkout
shell : bash
run : set -x && ls -l sparse-checkout/src/git-command-manager.ts
2023-06-09 16:08:21 +03:00
# Sparse checkout (non-cone mode)
- name : Sparse checkout (non-cone mode)
uses : ./
with :
sparse-checkout : |
/__test__/
/.github/
/dist/
sparse-checkout-cone-mode : false
path : sparse-checkout-non-cone-mode
- name : Verify sparse checkout (non-cone mode)
run : __test__/verify-sparse-checkout-non-cone-mode.sh
2019-12-03 18:28:59 +03:00
# LFS
2020-03-10 17:45:50 +03:00
- name : Checkout LFS
2019-12-03 18:28:59 +03: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 21:16:16 +03:00
2020-03-05 22:21:59 +03:00
# Submodules false
2020-03-10 17:45:50 +03:00
- name : Checkout submodules false
2020-03-05 22:21:59 +03:00
uses : ./
with :
2020-03-10 17:45:50 +03:00
ref : test-data/v2/submodule-ssh-url
2020-03-05 22:21:59 +03:00
path : submodules-false
- name : Verify submodules false
run : __test__/verify-submodules-false.sh
# Submodules one level
2020-03-10 17:45:50 +03:00
- name : Checkout submodules true
2020-03-05 22:21:59 +03:00
uses : ./
with :
2020-03-10 17:45:50 +03:00
ref : test-data/v2/submodule-ssh-url
2020-03-05 22:21:59 +03:00
path : submodules-true
submodules : true
- name : Verify submodules true
run : __test__/verify-submodules-true.sh
# Submodules recursive
2020-03-10 17:45:50 +03:00
- name : Checkout submodules recursive
2020-03-05 22:21:59 +03:00
uses : ./
with :
2020-03-10 17:45:50 +03:00
ref : test-data/v2/submodule-ssh-url
2020-03-05 22:21:59 +03:00
path : submodules-recursive
submodules : recursive
- name : Verify submodules recursive
run : __test__/verify-submodules-recursive.sh
2020-01-27 18:21:50 +03: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 17:45:50 +03:00
- name : Checkout basic using REST API
2020-01-27 18:21:50 +03: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 :
2024-02-21 15:56:19 +03:00
image : ghcr.io/actions/test-ubuntu-git:main.20240221.114913.703z
2020-01-27 18:21:50 +03:00
options : --dns 127.0.0.1
services :
squid-proxy :
2022-11-10 23:54:12 +03:00
image : ubuntu/squid:latest
2020-01-27 18:21:50 +03:00
ports :
- 3128 : 3128
env :
https_proxy : http://squid-proxy:3128
steps :
# Clone this repo
- name : Checkout
2022-03-01 21:02:13 +03:00
uses : actions/checkout@v3
2020-01-27 18:21:50 +03:00
# Basic checkout using git
2020-03-10 17:45:50 +03:00
- name : Checkout basic
2020-01-27 18:21:50 +03: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 21:16:16 +03:00
runs-on : ubuntu-latest
2020-01-27 18:21:50 +03:00
env :
https_proxy : http://no-such-proxy:3128
no_proxy : api.github.com,github.com
2019-12-12 21:16:16 +03:00
steps :
# Clone this repo
- name : Checkout
2022-03-01 21:02:13 +03:00
uses : actions/checkout@v3
2019-12-12 21:16:16 +03:00
2020-01-27 18:21:50 +03:00
# Basic checkout using git
2020-03-10 17:45:50 +03:00
- name : Checkout basic
2019-12-12 21:16:16 +03:00
uses : ./
with :
ref : test-data/v2/basic
path : basic
2020-01-27 18:21:50 +03: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 17:45:50 +03:00
- name : Checkout basic using REST API
2020-01-27 18:21:50 +03:00
uses : ./
with :
ref : test-data/v2/basic
path : basic
2019-12-12 21:16:16 +03:00
- name : Verify basic
run : __test__/verify-basic.sh --archive
2022-04-21 04:37:43 +03: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 :
2024-02-21 15:56:19 +03:00
path : v3