bucket: copy key before Put #41
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Tests | |
on: [push, pull_request] | |
jobs: | |
test-linux: | |
strategy: | |
fail-fast: false | |
matrix: | |
target: | |
- linux-amd64-unit-test-1-cpu | |
- linux-amd64-unit-test-2-cpu | |
- linux-amd64-unit-test-4-cpu | |
- linux-amd64-unit-test-4-cpu-race | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-go@v3 | |
with: | |
go-version: "1.17.13" | |
- run: make fmt | |
- env: | |
TARGET: ${{ matrix.target }} | |
run: | | |
case "${TARGET}" in | |
linux-amd64-unit-test-1-cpu) | |
CPU=1 make test | |
;; | |
linux-amd64-unit-test-2-cpu) | |
CPU=2 make test | |
;; | |
linux-amd64-unit-test-4-cpu) | |
CPU=4 make test | |
;; | |
linux-amd64-unit-test-4-cpu-race) | |
# XXX: By default, the Github Action runner will terminate the process | |
# if it has high resource usage. Try to use GOGC to limit memory and | |
# cpu usage here to prevent unexpected terminating. It can be replaced | |
# with GOMEMLIMIT=2048MiB if the go-version is updated to >=1.19.x. | |
# | |
# REF: https://github.com/actions/runner-images/issues/6680#issuecomment-1335778010 | |
GOGC=30 CPU=4 ENABLE_RACE=true make test | |
;; | |
*) | |
echo "Failed to find target" | |
exit 1 | |
;; | |
esac | |
- name: golangci-lint | |
uses: golangci/golangci-lint-action@08e2f20817b15149a52b5b3ebe7de50aff2ba8c5 # v3.4.0 | |
test-windows: | |
strategy: | |
fail-fast: false | |
matrix: | |
target: | |
- windows-amd64-unit-test-4-cpu | |
# FIXME(fuweid): | |
# | |
# The windows will throws the following error when enable race. | |
# We skip it until we have solution. | |
# | |
# ThreadSanitizer failed to allocate 0x000200000000 (8589934592) bytes at 0x0400c0000000 (error code: 1455) | |
# | |
#- windows-amd64-unit-test-4-cpu-race | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-go@v3 | |
with: | |
go-version: "1.17.13" | |
- run: make fmt | |
- env: | |
TARGET: ${{ matrix.target }} | |
run: | | |
case "${TARGET}" in | |
windows-amd64-unit-test-4-cpu) | |
CPU=4 make test | |
;; | |
*) | |
echo "Failed to find target" | |
exit 1 | |
;; | |
esac | |
shell: bash | |
- name: golangci-lint | |
uses: golangci/golangci-lint-action@08e2f20817b15149a52b5b3ebe7de50aff2ba8c5 # v3.4.0 | |
coverage: | |
needs: ["test-linux", "test-windows"] | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-go@v3 | |
with: | |
go-version: "1.17.13" | |
- run: make coverage | |