diff --git a/.github/workflows/functional-test.yml b/.github/workflows/functional-test.yml index a38caf8..a16c4b8 100644 --- a/.github/workflows/functional-test.yml +++ b/.github/workflows/functional-test.yml @@ -41,19 +41,13 @@ jobs: strategy: matrix: os: [ubuntu-latest, macos-latest, windows-latest] - confluence-version: [Cloud, Server] + confluence-version: [Cloud] include: - confluence-version: Cloud confluence-base-url: CONFLUENCE_CLOUD_BASE_URL confluence-username: CONFLUENCE_CLOUD_USERNAME confluence-token: CONFLUENCE_CLOUD_TOKEN gauge-tags: "!not-cloud" - - confluence-version: Server - confluence-base-url: CONFLUENCE_SERVER_BASE_URL - confluence-username: CONFLUENCE_SERVER_USERNAME - confluence-token: CONFLUENCE_SERVER_TOKEN - confluence-username-without-create-space: CONFLUENCE_SERVER_USERNAME_WITHOUT_CREATE_SPACE - confluence-token-without-create-space: CONFLUENCE_SERVER_TOKEN_WITHOUT_CREATE_SPACE steps: - name: Set up Go diff --git a/functional-tests/build.gradle b/functional-tests/build.gradle index 0bbb57f..7a81cd2 100644 --- a/functional-tests/build.gradle +++ b/functional-tests/build.gradle @@ -29,7 +29,7 @@ languages.each {lang -> doFirst { gauge { specsDir = 'specs' - inParallel = true + inParallel = false } } } diff --git a/internal/confluence/api/client.go b/internal/confluence/api/client.go index d288766..cd06202 100644 --- a/internal/confluence/api/client.go +++ b/internal/confluence/api/client.go @@ -193,19 +193,23 @@ func (c *Client) IsSpaceModifiedSinceLastPublished(spaceKey string, lastPublishe } // WasPageCreatedAt returns true if the page was created at the given time. -func (c *Client) WasPageCreatedAt(cqlTime string, pageID string) bool { +func (c *Client) WasPageCreatedAt(cqlTime string, pageID string) (bool, error) { query := goconfluence.SearchQuery{ CQL: fmt.Sprintf("created=\"%s\" AND ID=\"%s\"", cqlTime, pageID), } - result, _ := c.goconfluenceClient.Search(query) + result, err := c.goconfluenceClient.Search(query) + + if err != nil { + return false, err + } for _, r := range result.Results { if pageID == r.Content.ID { - return true + return true, nil } } - return false + return false, nil } // TotalPagesInSpace returns the number of pages (and blogposts) in the given Space diff --git a/internal/confluence/homepage.go b/internal/confluence/homepage.go index 26ebd9e..9b3a0ef 100644 --- a/internal/confluence/homepage.go +++ b/internal/confluence/homepage.go @@ -50,11 +50,15 @@ func (h *homepage) cqlTimeOffset() (int, error) { err := errors.Retry(5, 1000, func() (err error) { //nolint:gomnd for o := minOffset; o <= maxOffset; o++ { cqlTime := h.created.CQLFormat(o) + wasPageCreatedAtCQLTime, err := h.apiClient.WasPageCreatedAt(cqlTime, h.id) + if err != nil { + return err + } - if h.apiClient.WasPageCreatedAt(cqlTime, h.id) { + if wasPageCreatedAtCQLTime { logger.Debugf(false, "Successfully calculated time offset for Confluence CQL searches: UTC %+d hours", o) offset = o - return + return nil } } return fmt.Errorf("could not calculate time offset for Confluence CQL searches") diff --git a/plugin.json b/plugin.json index 3b64b07..d12143b 100644 --- a/plugin.json +++ b/plugin.json @@ -1,6 +1,6 @@ { "id": "confluence", - "version": "0.15.0", + "version": "0.15.1", "name": "Confluence", "description": "Publishes Gauge specifications to Confluence", "install": {