diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index ed9235c704b9af8627a139aa14f453c5392e5b0d..ef86e25b4de83826ac4bff09dd171647142681e5 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -12,7 +12,7 @@ jobs: strategy: matrix: go-version: [1.24.2] - platform: [ubuntu-latest, macos-latest, windows-latest] + platform: [ubuntu-latest] runs-on: ${{ matrix.platform }} steps: - name: Check out code @@ -27,55 +27,10 @@ jobs: run: make - name: Test - run: make test + run: | + go test -v -run TestGithubPushPull ./bridge/github env: GITHUB_USER: ${{ vars.TEST_USER_GITHUB }} GITHUB_TOKEN: ${{ secrets.TEST_TOKEN_GITHUB }} GITHUB_TOKEN_PRIVATE: ${{ secrets._GITHUB_TOKEN_PRIVATE }} GITHUB_TOKEN_PUBLIC: ${{ secrets._GITHUB_TOKEN_PUBLIC }} - GITLAB_API_TOKEN: ${{ secrets.GITLAB_API_TOKEN }} - GITLAB_PROJECT_ID: ${{ secrets.GITLAB_PROJECT_ID }} - - with-node: - runs-on: ubuntu-latest - strategy: - matrix: - node-version: [16.x, 18.x, 20.x] - defaults: - run: - working-directory: webui - steps: - - name: Setup Node.js ${{ matrix.node-version }} - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 - with: - node-version: ${{ matrix.node-version }} - - - name: Check out code - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - - uses: DeterminateSystems/nix-installer-action@21a544727d0c62386e78b4befe52d19ad12692e3 # v17 - - - uses: nicknovitski/nix-develop@9be7cfb4b10451d3390a75dc18ad0465bed4932a # v1.2.1 - - - name: Install - run: make install - - - name: Build - run: make build - - - name: Test - run: make test - - with-nix: - strategy: - matrix: - platform: [ubuntu-latest, macos-latest] - runs-on: ${{ matrix.platform }} - steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - - uses: DeterminateSystems/nix-installer-action@21a544727d0c62386e78b4befe52d19ad12692e3 # v17 - - - uses: nicknovitski/nix-develop@9be7cfb4b10451d3390a75dc18ad0465bed4932a # v1.2.1 - - - run: nix flake check diff --git a/.github/workflows/presubmit.yml b/.github/workflows/presubmit.yml index b6e2aa7753c0e4ef753dc99014134b203a2bf76b..0594fe77f038d9b4e4f34a31f6d35e1fd737529e 100644 --- a/.github/workflows/presubmit.yml +++ b/.github/workflows/presubmit.yml @@ -12,6 +12,9 @@ on: merge_group: types: - checks_requested + push: + branches: + - I738207f8cb254b66f3ef18aa525fce39c71060e2 pull_request: branches: - master diff --git a/bridge/github/export_test.go b/bridge/github/export_test.go index 9d8297e4b7a937f7aa44a055f5ba30b443c976f7..65250e4eed1ca0c82d33b8613a2bea8546c1bf6a 100644 --- a/bridge/github/export_test.go +++ b/bridge/github/export_test.go @@ -191,10 +191,21 @@ func TestGithubPushPull(t *testing.T) { // Make sure to remove the Github repository when the test end defer func(t *testing.T) { - if err := deleteRepository(projectName, envUser, envToken); err != nil { - t.Fatal(err) + ci := os.Getenv("CI") == "true" + if !t.Failed() || ci { + if err := deleteRepository(projectName, envUser, envToken); err != nil { + t.Fatal(err) + } + + reason := "test success" + if ci { + reason = "CI" + } + + slog.Info("deleted repository", "reason", reason, "name", projectName) + } else { + slog.Info("persisted repository", "reason", "test failure", "name", projectName) } - fmt.Println("deleted repository:", projectName) }(t) interrupt.RegisterCleaner(func() error { @@ -275,8 +286,22 @@ func TestGithubPushPull(t *testing.T) { importedBug, err := backendTwo.Bugs().ResolveBugCreateMetadata(metaKeyGithubId, bugGithubID) require.NoError(t, err) + importedOpCount := len(importedBug.Snapshot().Operations) + + if tt.numOrOp != len(importedBug.Snapshot().Operations) { + slog.Info("invalid number of ops for imported bug", "github-id", bugGithubID, "title", importedBug.Snapshot().Title, "opCount", importedOpCount, "labels", importedBug.Snapshot().Labels) + for _, op := range importedBug.Snapshot().Operations { + slog.Info(" operation", "type", op.Type(), "time", op.Time(), "author", op.Author().Name()) + for k, v := range op.AllMetadata() { + slog.Info(" metadata", "key", k, "val", v) + } + } + + slog.Info("final snapshot", "status", importedBug.Snapshot().Status.String(), "labels", importedBug.Snapshot().Labels) + } + // verify bug have same number of original operations - require.Len(t, importedBug.Snapshot().Operations, tt.numOrOp) + require.Equal(t, importedOpCount, tt.numOrOp) // verify bugs are tagged with origin=github issueOrigin, ok := importedBug.Snapshot().GetCreateMetadata(core.MetaKeyOrigin)