api: advertise 204 instead of 200 for delete operations in OpenAPI spec #8521
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: test-race | |
| on: | |
| push: | |
| paths-ignore: | |
| - 'website/**' | |
| workflow_call: | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| env: | |
| DOCKER_MIRROR: docker.mirror.hashicorp.services | |
| jobs: | |
| setup: | |
| outputs: | |
| go-version: ${{ steps.get-go-version.outputs.go-version }} | |
| cache-go-mod: ${{ steps.go-cache-paths.outputs.go-mod }} | |
| cache-go-bin: ${{ steps.go-cache-paths.outputs.go-bin }} | |
| go-mod-cache-key: ${{ steps.go-mod-cache-key.outputs.key }} | |
| go-tools-cache-key: ${{ steps.go-tools-cache-key.outputs.key }} | |
| plugin-cache-path: ${{ steps.plugin-cache-paths.outputs.path }} | |
| plugin-cache-key: ${{ steps.plugin-cache-key.outputs.key }} | |
| runs-on: ${{ fromJSON(vars.RUNNER) }} | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| fetch-depth: '0' | |
| - name: Determine Go version | |
| id: get-go-version | |
| # We use .go-version as our source of truth for current Go | |
| # version, because "goenv" can react to it automatically. | |
| run: | | |
| echo "Building with Go $(cat .go-version)" | |
| echo "go-version=$(cat .go-version)" >> "$GITHUB_OUTPUT" | |
| - name: Set up Go | |
| uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6.3.0 | |
| with: | |
| go-version: "${{ steps.get-go-version.outputs.go-version }}" | |
| cache: false | |
| - name: Determine Go cache paths | |
| id: go-cache-paths | |
| run: | | |
| echo "go-mod=$(go env GOMODCACHE)" >> "$GITHUB_OUTPUT" | |
| echo "go-bin=$(go env GOPATH)/bin" >> "$GITHUB_OUTPUT" | |
| - name: Determine Go modules cache key | |
| id: go-mod-cache-key | |
| run: | | |
| echo "key=go-mod-${{ hashFiles('**/go.sum') }}" >> "$GITHUB_OUTPUT" | |
| - name: Set up Go modules cache | |
| uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.3 | |
| with: | |
| path: | | |
| ${{ steps.go-cache-paths.outputs.go-mod }} | |
| key: ${{ steps.go-mod-cache-key.outputs.key }} | |
| restore-keys: | | |
| go-mod | |
| - name: Determine Go tools cache key | |
| id: go-tools-cache-key | |
| run: | | |
| echo "key=go-tools-${{ steps.get-go-version.outputs.go-version }}-${{ hashFiles('**/go.sum', './Makefile', './tools/tools.go') }}" >> "$GITHUB_OUTPUT" | |
| - name: Set up Go tools cache | |
| id: go-tools-cache | |
| uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.3 | |
| with: | |
| path: | | |
| ${{ steps.go-cache-paths.outputs.go-bin }} | |
| key: ${{ steps.go-tools-cache-key.outputs.key }} | |
| restore-keys: | | |
| go-tools-${{ steps.get-go-version.outputs.go-version }} | |
| - name: Go mod download | |
| run: | | |
| go mod download | |
| - name: Install Tools | |
| if: steps.go-tools-cache.outputs.cache-hit != 'true' | |
| run: | | |
| make tools | |
| - name: Determine plugin cache key | |
| id: plugin-cache-key | |
| run: | | |
| echo "key=plugins-${{ runner.os }}-${{ hashFiles('plugins/**/*.go', 'plugins/**/go.sum', './Makefile', './scripts/plugins.sh') }}" >> "$GITHUB_OUTPUT" | |
| - name: Determine plugin cache path | |
| id: plugin-cache-paths | |
| run: | | |
| echo "path=plugins/**/assets/*.gz" >> "$GITHUB_OUTPUT" | |
| - name: Set up plugin cache | |
| id: plugin-cache | |
| uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.3 | |
| with: | |
| path: | | |
| ${{ steps.plugin-cache-paths.outputs.path }} | |
| key: ${{ steps.plugin-cache-key.outputs.key }} | |
| restore-keys: | | |
| plugins-${{ runner.os }} | |
| - name: Build Plugins | |
| if: steps.plugin-cache.outputs.cache-hit != 'true' | |
| run: | | |
| make build-plugins | |
| test-modules: | |
| needs: | |
| - setup | |
| runs-on: ${{ fromJSON(vars.RUNNER) }} | |
| strategy: | |
| matrix: | |
| module: ["api", "sdk"] | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - name: Set up go | |
| uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6.3.0 | |
| with: | |
| go-version: "${{ needs.setup.outputs.go-version }}" | |
| cache: false | |
| - name: Set up Go modules cache | |
| uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.3 | |
| with: | |
| path: | | |
| ${{ needs.setup.outputs.cache-go-mod }} | |
| key: ${{ needs.setup.outputs.go-mod-cache-key }} | |
| restore-keys: | | |
| go-mod | |
| fail-on-cache-miss: false | |
| - name: Test ${{ matrix.module }} Module | |
| run: | | |
| make test-${{ matrix.module }} | |
| test: | |
| needs: | |
| - setup | |
| runs-on: ${{ fromJSON(vars.RUNNER_LARGE) }} | |
| steps: | |
| - name: ulimit | |
| run: | | |
| echo "Soft limits" | |
| ulimit -Sa | |
| echo "Hard limits" | |
| ulimit -Ha | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - name: Set up go | |
| uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6.3.0 | |
| with: | |
| go-version: "${{ needs.setup.outputs.go-version }}" | |
| cache: false | |
| - name: Set up Go modules cache | |
| uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.3 | |
| with: | |
| path: | | |
| ${{ needs.setup.outputs.cache-go-mod }} | |
| key: ${{ needs.setup.outputs.go-mod-cache-key }} | |
| restore-keys: | | |
| go-mod | |
| fail-on-cache-miss: false | |
| - name: Set up Go tools cache | |
| id: go-tools-cache | |
| uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.3 | |
| with: | |
| path: | | |
| ${{ needs.setup.outputs.cache-go-bin }} | |
| key: ${{ needs.setup.outputs.go-tools-cache-key }} | |
| restore-keys: | | |
| go-tools-${{ needs.setup.outputs.go-version }} | |
| - name: Go mod download | |
| run: | | |
| go mod download | |
| - name: Install Tools | |
| if: steps.go-tools-cache.outputs.cache-hit != 'true' | |
| run: | | |
| make tools | |
| - name: Set up plugin cache | |
| id: plugin-cache | |
| uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.3 | |
| with: | |
| path: | | |
| ${{ needs.setup.outputs.plugin-cache-path }} | |
| key: ${{ needs.setup.outputs.plugin-cache-key }} | |
| restore-keys: | | |
| plugins-${{ runner.os }} | |
| - name: GH fix for localhost resolution | |
| if: github.repository == 'hashicorp/boundary' | |
| run: | | |
| cat /etc/hosts && echo "-----------" | |
| sudo sed -i 's/::1 *localhost ip6-localhost ip6-loopback/::1 ip6 -localhost ip6-loopback/g' /etc/hosts | |
| cat /etc/hosts | |
| - name: Initialize Test Database | |
| run: | | |
| which pg_isready || sudo apt-get update && sudo apt-get install -y postgresql-client | |
| make DOCKER_ARGS='-d' PG_OPTS='-c shared_buffers=256MB -c max_connections=200000' -C testing/dbtest/docker database-up | |
| until pg_isready -h 127.0.0.1; do docker container inspect boundary-sql-tests &> /dev/null || exit 255; sleep 1; done | |
| - name: Test | |
| uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 # v4.0.0 | |
| env: | |
| TEST_TIMEOUT: 120m | |
| TESTARGS: -race -v | |
| with: | |
| max_attempts: 1 | |
| timeout_minutes: 120 | |
| retry_on: error | |
| command: make test | |
| - name: Cleanup | |
| if: always() | |
| run: | | |
| make -C testing/dbtest/docker clean |