Skip to content

build(deps): Update jacobsa/fuse to support co-existence of vectored and non-vectored reads #17442

build(deps): Update jacobsa/fuse to support co-existence of vectored and non-vectored reads

build(deps): Update jacobsa/fuse to support co-existence of vectored and non-vectored reads #17442

Workflow file for this run

name: ci
on:
push:
branches:
- master
pull_request:
branches:
- '*'
permissions:
contents: read
# Ensure only the latest run per branch is active (cancel older in-progress runs),
# but allow every master commit to run (don't cancel or group master runs together).
concurrency:
# For master we use a unique group per run (github.run_id) so runs don't cancel each other.
# For other refs we use the ref as the group so a new run cancels any previous in-progress run on that ref.
group: ${{ github.ref == 'refs/heads/master' && github.run_id || github.ref }}
# Cancel in-progress runs for non-master refs; do not cancel on master.
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
jobs:
filter:
runs-on: ubuntu-latest
timeout-minutes: 5
outputs:
run_tests: ${{ steps.filter.outputs.run_tests }}
steps:
- uses: actions/checkout@v4
- uses: dorny/[email protected]
id: filter
with:
predicate-quantifier: 'every'
filters: |
run_tests:
- '!**/*.md'
- '!tools/**'
- '!perfmetrics/**'
- '!samples/**'
format-test:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: "1.24"
- name: CodeGen
run: go generate ./...
- name: Formatting diff
run: go fmt ./... && go mod tidy && git diff --exit-code --name-only
linux-tests:
needs: filter
strategy:
matrix:
go: [ 1.24.x ]
runs-on: ubuntu-latest
timeout-minutes: 25
steps:
- uses: actions/checkout@v2
- name: Set up Go ${{ matrix.go }}
uses: actions/[email protected]
with:
go-version: ${{ matrix.go }}
- name: Install fuse
run: sudo apt-get update && sudo apt-get install -y fuse3 libfuse-dev
- name: Build
if: ${{ needs.filter.outputs.run_tests == 'true' }}
run: |
CGO_ENABLED=0 go build ./...
go install ./tools/build_gcsfuse
build_gcsfuse . /tmp ${GITHUB_SHA}
- name: Test all
if: ${{ needs.filter.outputs.run_tests == 'true' }}
run: CGO_ENABLED=0 go test -p 1 -count 1 -covermode=atomic -coverprofile=coverage.out -coverpkg=./... -v -skip `cat flaky_tests.lst | go run tools/scripts/skip_tests/main.go` `go list ./...`
- name: RaceDetector Test
if: ${{ needs.filter.outputs.run_tests == 'true' }}
run: go test -p 1 -count 1 -v -race -skip `cat flaky_tests.lst | go run tools/scripts/skip_tests/main.go` ./internal/cache/... ./internal/gcsx/...
- name: Upload coverage reports to Codecov
uses: codecov/[email protected]
timeout-minutes: 5
with:
fail_ci_if_error: false
token: ${{ secrets.CODECOV_TOKEN }}
flags: unittests
lint:
name: Lint
if: github.ref != 'refs/heads/master'
runs-on: ubuntu-latest
steps:
- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: "1.24"
- name: checkout code
uses: actions/checkout@v4
- name: golangci-lint
uses: golangci/golangci-lint-action@032fa5c5e48499f06cf9d32c02149bfac1284239
with:
args: -E=goimports,unused --timeout 3m0s
only-new-issues: true