From e83d5c28219ab5ea4bbe753dc02f646a4a3a75ac Mon Sep 17 00:00:00 2001 From: Shahidh K Muhammed Date: Sat, 8 Sep 2018 22:04:16 +0530 Subject: [PATCH 1/2] disable update checks on a ci system (close #319) --- server/src-exec/Main.hs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/server/src-exec/Main.hs b/server/src-exec/Main.hs index 547f44d1a3215..92dcaa10754c0 100644 --- a/server/src-exec/Main.hs +++ b/server/src-exec/Main.hs @@ -152,8 +152,11 @@ main = do let warpSettings = Warp.setPort port Warp.defaultSettings -- Warp.setHost "*" Warp.defaultSettings - -- start a background thread to check for updates - void $ C.forkIO $ checkForUpdates loggerCtx httpManager + -- start a background thread to check for updates if not on a CI env + isCI <- lookupEnv "CI" + case isCI of + Just "true" -> putStrLn "not checking for updates on CI env" + _ -> void $ C.forkIO $ checkForUpdates loggerCtx httpManager maxEvThrds <- getFromEnv defaultMaxEventThreads "HASURA_GRAPHQL_EVENTS_HTTP_POOL_SIZE" evPollSec <- getFromEnv defaultPollingIntervalSec "HASURA_GRAPHQL_EVENTS_FETCH_INTERVAL" From 2f518a3bdb21bd424fcbce5c03b380fffb01087f Mon Sep 17 00:00:00 2001 From: Shahidh K Muhammed Date: Wed, 12 Sep 2018 11:33:38 +0530 Subject: [PATCH 2/2] add ci info to agent query param --- server/src-exec/Main.hs | 7 ++----- server/src-lib/Hasura/Server/CheckUpdates.hs | 15 ++++++++++++--- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/server/src-exec/Main.hs b/server/src-exec/Main.hs index 92dcaa10754c0..547f44d1a3215 100644 --- a/server/src-exec/Main.hs +++ b/server/src-exec/Main.hs @@ -152,11 +152,8 @@ main = do let warpSettings = Warp.setPort port Warp.defaultSettings -- Warp.setHost "*" Warp.defaultSettings - -- start a background thread to check for updates if not on a CI env - isCI <- lookupEnv "CI" - case isCI of - Just "true" -> putStrLn "not checking for updates on CI env" - _ -> void $ C.forkIO $ checkForUpdates loggerCtx httpManager + -- start a background thread to check for updates + void $ C.forkIO $ checkForUpdates loggerCtx httpManager maxEvThrds <- getFromEnv defaultMaxEventThreads "HASURA_GRAPHQL_EVENTS_HTTP_POOL_SIZE" evPollSec <- getFromEnv defaultPollingIntervalSec "HASURA_GRAPHQL_EVENTS_FETCH_INTERVAL" diff --git a/server/src-lib/Hasura/Server/CheckUpdates.hs b/server/src-lib/Hasura/Server/CheckUpdates.hs index 2487882d38d21..232cb40f5df96 100644 --- a/server/src-lib/Hasura/Server/CheckUpdates.hs +++ b/server/src-lib/Hasura/Server/CheckUpdates.hs @@ -8,6 +8,7 @@ module Hasura.Server.CheckUpdates import Control.Exception (try) import Control.Lens import Control.Monad (forever) +import System.Environment (lookupEnv) import qualified Control.Concurrent as C import qualified Data.Aeson as A @@ -35,7 +36,7 @@ checkForUpdates (LoggerCtx loggerSet _ _) manager = do let options = Wreq.defaults & Wreq.checkResponse ?~ (\_ _ -> return ()) & Wreq.manager .~ Right manager - + url <- getUrl forever $ do resp <- try $ Wreq.getWith options $ T.unpack url case resp of @@ -49,8 +50,16 @@ checkForUpdates (LoggerCtx loggerSet _ _) manager = do where updateMsg v = "Update: A new version is available: " <> v - url = "https://releases.hasura.io/graphql-engine?agent=server&version=" - <> currentVersion + getUrl = do + let buildUrl a = "https://releases.hasura.io/graphql-engine?agent=" + <> a + <> "&version=" + <> currentVersion + isCI <- lookupEnv "CI" + case isCI of + Just "true" -> return $ buildUrl "server-ci" + _ -> return $ buildUrl "server" + aDay = 86400 * 1000 * 1000 -- ignoring if there is any error in response and returning the current version