Wait for ConcurrentLister workers when the bucket listing fails #18290
Workflow file for this run
This file contains hidden or 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: go | |
| on: | |
| push: | |
| branches: | |
| - main | |
| tags: | |
| pull_request: | |
| permissions: | |
| contents: read | |
| jobs: | |
| unit: | |
| runs-on: ubuntu-latest | |
| name: Thanos unit tests | |
| env: | |
| THANOS_TEST_OBJSTORE_SKIP: GCS,S3,AZURE,COS,ALIYUNOSS,BOS,OCI,OBS,SWIFT | |
| OS_AUTH_URL: http://127.0.0.1:5000/v2.0 | |
| OS_PASSWORD: s3cr3t | |
| OS_PROJECT_NAME: admin | |
| OS_REGION_NAME: RegionOne | |
| OS_USERNAME: admin | |
| GOBIN: /tmp/.bin | |
| services: | |
| swift: | |
| image: 'quay.io/thanos/docker-swift-onlyone-authv2-keystone:v0.1' | |
| ports: | |
| - 5000:5000 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
| - name: Install Go. | |
| uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2 | |
| with: | |
| go-version: 1.26.x | |
| - name: Install bingo modules | |
| run: make install-tool-deps | |
| - name: Add GOBIN to path | |
| run: echo "/tmp/.bin" >> $GITHUB_PATH | |
| - name: Run unit tests | |
| run: make test-coverage | |
| - name: Upload coverage data | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: coverage-unit | |
| path: .coverage | |
| include-hidden-files: true | |
| retention-days: 1 | |
| cross-build-check: | |
| runs-on: ubuntu-latest | |
| name: Go build for different platforms | |
| env: | |
| GOBIN: /tmp/.bin | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
| - name: Install Go | |
| uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2 | |
| with: | |
| go-version: 1.26.x | |
| - uses: actions/cache@0c907a75c2c80ebcb7f088228285e798b750cf8f # v4.2.1 | |
| with: | |
| path: | | |
| ~/.cache/go-build | |
| ~/.cache/golangci-lint | |
| ~/go/pkg/mod | |
| key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
| restore-keys: | | |
| ${{ runner.os }}-go- | |
| - name: Cross build check | |
| run: make crossbuild | |
| build-stringlabels: | |
| runs-on: ubuntu-latest | |
| name: Go build with -tags=stringlabels | |
| env: | |
| GOBIN: /tmp/.bin | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
| - name: Install Go | |
| uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2 | |
| with: | |
| go-version: 1.26.x | |
| - uses: actions/cache@0c907a75c2c80ebcb7f088228285e798b750cf8f # v4.2.1 | |
| with: | |
| path: | | |
| ~/.cache/go-build | |
| ~/.cache/golangci-lint | |
| ~/go/pkg/mod | |
| key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
| restore-keys: | | |
| ${{ runner.os }}-go- | |
| - name: Cross build check | |
| run: go build -tags=stringlabels ./cmd/thanos | |
| lint: | |
| runs-on: ubuntu-latest | |
| name: Linters (Static Analysis) for Go | |
| env: | |
| GOBIN: /tmp/.bin | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
| - name: Install Go | |
| uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2 | |
| with: | |
| go-version: 1.26.x | |
| - uses: actions/cache@0c907a75c2c80ebcb7f088228285e798b750cf8f # v4.2.1 | |
| with: | |
| path: | | |
| ~/.cache/go-build | |
| ~/.cache/golangci-lint | |
| ~/go/pkg/mod | |
| key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
| restore-keys: | | |
| ${{ runner.os }}-go- | |
| - name: Format. | |
| run: make format | |
| - name: Linting & vetting | |
| run: make go-lint | |
| codespell: | |
| runs-on: ubuntu-latest | |
| name: Check misspelled words | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Run codespell | |
| uses: codespell-project/actions-codespell@v2 | |
| with: | |
| check_filenames: false | |
| check_hidden: true | |
| skip: ./pkg/ui/*,./pkg/store/6545postingsrepro,./internal/*,./mixin/vendor/*,./.bingo/*,go.mod,go.sum | |
| ignore_words_list: intrumentation,mmaped,nd,ot,re-use,ser,serie,sme,sudu,tast,te,ans | |
| build-e2e-image: | |
| runs-on: ubuntu-24.04 | |
| name: Build e2e Docker image | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
| - name: Build e2e Docker image | |
| run: make docker-e2e E2E_GOFLAGS=-cover | |
| - name: Export image | |
| run: docker save thanos | gzip > /tmp/thanos-e2e.tar.gz | |
| - name: Upload image artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: thanos-e2e-image | |
| path: /tmp/thanos-e2e.tar.gz | |
| retention-days: 1 | |
| e2e: | |
| needs: build-e2e-image | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| parallelism: [8] | |
| index: [0, 1, 2, 3, 4, 5, 6, 7] | |
| runs-on: ubuntu-24.04 | |
| name: Thanos end-to-end tests | |
| env: | |
| GOBIN: /tmp/.bin | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
| - name: Install Go. | |
| uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2 | |
| with: | |
| go-version: 1.26.x | |
| - uses: actions/cache@0c907a75c2c80ebcb7f088228285e798b750cf8f # v4.2.1 | |
| with: | |
| path: | | |
| ~/.cache/go-build | |
| ~/.cache/golangci-lint | |
| ~/go/pkg/mod | |
| key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
| - name: Download e2e image artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: thanos-e2e-image | |
| path: /tmp | |
| - name: Load e2e Docker image | |
| run: docker load < /tmp/thanos-e2e.tar.gz | |
| - name: Run e2e docker-based tests | |
| run: make test-e2e SKIP_DOCKER_BUILD=1 GH_PARALLEL=${{ matrix.parallelism }} GH_INDEX=${{ matrix.index }} | |
| env: | |
| THANOS_E2E_GOCOVERDIR: ${{ github.workspace }}/.coverage/e2e | |
| - name: Upload coverage data | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: coverage-e2e-${{ matrix.index }} | |
| path: .coverage | |
| include-hidden-files: true | |
| retention-days: 1 | |
| coverage: | |
| needs: [unit, e2e] | |
| runs-on: ubuntu-latest | |
| name: Merge unit+e2e coverage and upload to Codecov | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
| - name: Install Go. | |
| uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2 | |
| with: | |
| go-version: 1.26.x | |
| - name: Download coverage data | |
| uses: actions/download-artifact@v4 | |
| with: | |
| pattern: coverage-* | |
| path: .coverage | |
| merge-multiple: true | |
| - name: Merge coverage profiles | |
| run: make coverage-report | |
| - name: Upload to Codecov | |
| uses: codecov/codecov-action@v5 | |
| with: | |
| files: .coverage/coverage.txt | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| fail_ci_if_error: false |