# Temporary: profiles the management unit suite per store engine from a working # branch. Delete before merging. name: Management timing (temporary) on: push: branches: - "work/amazing-wright-6xehqh" concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: test_management: name: "Management / Unit timing" strategy: fail-fast: false matrix: arch: ["amd64"] store: ["sqlite", "postgres", "mysql"] runs-on: ubuntu-22.04 steps: - name: Checkout code uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: persist-credentials: false - name: Install Go uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6.5.0 with: go-version-file: "go.mod" cache: false - name: Get Go environment run: | echo "cache=$(go env GOCACHE)" >> $GITHUB_ENV echo "modcache=$(go env GOMODCACHE)" >> $GITHUB_ENV - name: Cache Go modules uses: actions/cache/restore@2c8a9bd7457de244a408f35966fab2fb45fda9c8 # v6.0.0 with: path: | ${{ env.cache }} ${{ env.modcache }} key: ${{ runner.os }}-gotest-cache-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-gotest-cache- - name: Install modules run: go mod tidy - name: Login to Docker hub uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4.2.0 with: username: ${{ secrets.DOCKER_USER }} password: ${{ secrets.DOCKER_TOKEN }} - name: docker login for root user env: DOCKER_USER: ${{ secrets.DOCKER_USER }} DOCKER_TOKEN: ${{ secrets.DOCKER_TOKEN }} run: echo "$DOCKER_TOKEN" | sudo docker login --username "$DOCKER_USER" --password-stdin - name: download mysql image if: matrix.store == 'mysql' run: | docker pull mlsmaycon/warmed-mysql:8 docker image inspect mlsmaycon/warmed-mysql:8 --format 'entrypoint={{json .Config.Entrypoint}} cmd={{json .Config.Cmd}} env={{json .Config.Env}}' - name: Build test summarizer run: go build -o /tmp/gotestsummary ./tools/gotestsummary - name: Test shell: bash run: | set -o pipefail CGO_ENABLED=1 GOARCH=${{ matrix.arch }} \ NETBIRD_STORE_ENGINE=${{ matrix.store }} \ CI=true \ go test -json -tags=devcert -coverprofile=coverage.txt \ -exec "sudo --preserve-env=CI,NETBIRD_STORE_ENGINE" \ -timeout 45m ./management/... ./shared/management/... \ | tee test-output.jsonl | /tmp/gotestsummary -slowest 80 - name: Upload raw test events if: always() uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a #v7.0.1 with: name: test-output-${{ matrix.store }} path: test-output.jsonl if-no-files-found: ignore