mirror of https://github.com/coder/coder.git
ci: improve caching (#7943)
This commit is contained in:
parent
2bbe650eb0
commit
71c908974c
|
@ -8,8 +8,32 @@ runs:
|
|||
with:
|
||||
cache: true
|
||||
go-version: "1.20.5"
|
||||
|
||||
- name: Cache go
|
||||
uses: buildjet/cache@v3
|
||||
with:
|
||||
# ~/go/pkg is the same across operating systems.
|
||||
path: |
|
||||
~/go/pkg
|
||||
~/.cache/go-build
|
||||
~/AppData/Local/go-build
|
||||
~/Library/Caches/go-build
|
||||
# Job name must be included in the key for effective
|
||||
# test cache reuse.
|
||||
key: go-${{ runner.os }}-${{ github.job }}-${{ hashFiles('**/*.go', 'go.**') }}
|
||||
restore-keys: |
|
||||
go-${{ runner.os }}-${{ github.job }}-
|
||||
go-${{ runner.os }}-
|
||||
go-
|
||||
|
||||
- name: Install gotestsum
|
||||
uses: jaxxstorm/action-install-gh-release@v1.10.0
|
||||
with:
|
||||
repo: gotestyourself/gotestsum
|
||||
tag: v1.9.0
|
||||
|
||||
# It isn't necessary that we ever do this, but it helps
|
||||
# separate the "setup" from the "run" times.
|
||||
- name: go mod download
|
||||
shell: bash
|
||||
run: go mod download -x
|
||||
|
|
|
@ -218,8 +218,18 @@ jobs:
|
|||
echo "cover=false" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
# By default Go will use the number of logical CPUs, which
|
||||
# is a fine default.
|
||||
PARALLEL_FLAG=""
|
||||
if [ "${{ matrix.os }}" == "windows-2019" ]; then
|
||||
# Windows appears more I/O bound, so we increase parallelism
|
||||
# to make better use of CPU.
|
||||
PARALLEL_FLAG="-parallel=16"
|
||||
fi
|
||||
|
||||
export TS_DEBUG_DISCO=true
|
||||
gotestsum --junitfile="gotests.xml" --jsonfile="gotests.json" --packages="./..." -- -parallel=8 -timeout=7m -short -failfast $COVERAGE_FLAGS
|
||||
gotestsum --junitfile="gotests.xml" --jsonfile="gotests.json" \
|
||||
--packages="./..." -- $PARALLEL_FLAG -short -failfast $COVERAGE_FLAGS
|
||||
|
||||
- name: Print test stats
|
||||
if: success() || failure()
|
||||
|
@ -228,13 +238,6 @@ jobs:
|
|||
# so we need to print the test stats to the log.
|
||||
go run ./scripts/ci-report/main.go gotests.json | tee gotests_stats.json
|
||||
|
||||
- uses: actions/upload-artifact@v3
|
||||
if: success() || failure()
|
||||
with:
|
||||
name: gotests-${{ matrix.os }}.xml
|
||||
path: ./gotests.xml
|
||||
retention-days: 30
|
||||
|
||||
- uses: ./.github/actions/upload-datadog
|
||||
if: always()
|
||||
with:
|
||||
|
|
4
Makefile
4
Makefile
|
@ -610,6 +610,7 @@ test: test-clean
|
|||
|
||||
# When updating -timeout for this test, keep in sync with
|
||||
# test-go-postgres (.github/workflows/coder.yaml).
|
||||
# Do add coverage flags so that test caching works.
|
||||
test-postgres: test-clean test-postgres-docker
|
||||
# The postgres test is prone to failure, so we limit parallelism for
|
||||
# more consistent execution.
|
||||
|
@ -617,8 +618,7 @@ test-postgres: test-clean test-postgres-docker
|
|||
--junitfile="gotests.xml" \
|
||||
--jsonfile="gotests.json" \
|
||||
--packages="./..." -- \
|
||||
-covermode=atomic -coverprofile="gotests.coverage" -timeout=20m \
|
||||
-coverpkg=./... \
|
||||
-timeout=20m \
|
||||
-failfast
|
||||
.PHONY: test-postgres
|
||||
|
||||
|
|
Loading…
Reference in New Issue