Concurrent ios pushes (#497)
* Added the ability to concurrently call.push. Linter was complaining about "loop variable token captured by", need to determine if its a legitiment issue, as the lint message has now disappeared * resolved "loop variable token captured by func literal" issue * Ran make_fmt * Moved max_concurrent_pushes to iOS * Moved from limitgroup to sizedwaitgroup * Removed SizedWaitGroup. Using client pool of 1 and buffered channels * Fill client pool with the same client * MaxConcurrentPushes is now applied across all running pushes * Ran make fmt * Corrected TestPushToIOS test * Update README.md Co-Authored-By: Yaroslav "Zorg" Zborovsky <yaronius@users.noreply.github.com> * Added comment to config in all copies for max_concurrent_pushes * Updated TestPushToIOS to be driven from config Co-authored-by: Yaroslav "Zorg" Zborovsky <yaronius@users.noreply.github.com>
This commit is contained in:
@@ -63,6 +63,7 @@ ios:
|
||||
key_type: "pem" # could be pem, p12 or p8 type
|
||||
password: "" # certificate password, default as empty string.
|
||||
production: false
|
||||
max_concurrent_pushes: 100 # just for push ios notification
|
||||
max_retry: 0 # resend fail notification, default value zero is disabled
|
||||
key_id: "" # KeyID from developer account (Certificates, Identifiers & Profiles -> Keys)
|
||||
team_id: "" # TeamID from developer account (View Account -> Membership)
|
||||
@@ -153,15 +154,16 @@ type SectionAndroid struct {
|
||||
|
||||
// SectionIos is sub section of config.
|
||||
type SectionIos struct {
|
||||
Enabled bool `yaml:"enabled"`
|
||||
KeyPath string `yaml:"key_path"`
|
||||
KeyBase64 string `yaml:"key_base64"`
|
||||
KeyType string `yaml:"key_type"`
|
||||
Password string `yaml:"password"`
|
||||
Production bool `yaml:"production"`
|
||||
MaxRetry int `yaml:"max_retry"`
|
||||
KeyID string `yaml:"key_id"`
|
||||
TeamID string `yaml:"team_id"`
|
||||
Enabled bool `yaml:"enabled"`
|
||||
KeyPath string `yaml:"key_path"`
|
||||
KeyBase64 string `yaml:"key_base64"`
|
||||
KeyType string `yaml:"key_type"`
|
||||
Password string `yaml:"password"`
|
||||
Production bool `yaml:"production"`
|
||||
MaxConcurrentPushes uint `yaml:"max_concurrent_pushes"`
|
||||
MaxRetry int `yaml:"max_retry"`
|
||||
KeyID string `yaml:"key_id"`
|
||||
TeamID string `yaml:"team_id"`
|
||||
}
|
||||
|
||||
// SectionLog is sub section of config.
|
||||
@@ -308,6 +310,7 @@ func LoadConf(confPath string) (ConfYaml, error) {
|
||||
conf.Ios.KeyType = viper.GetString("ios.key_type")
|
||||
conf.Ios.Password = viper.GetString("ios.password")
|
||||
conf.Ios.Production = viper.GetBool("ios.production")
|
||||
conf.Ios.MaxConcurrentPushes = viper.GetUint("ios.max_concurrent_pushes")
|
||||
conf.Ios.MaxRetry = viper.GetInt("ios.max_retry")
|
||||
conf.Ios.KeyID = viper.GetString("ios.key_id")
|
||||
conf.Ios.TeamID = viper.GetString("ios.team_id")
|
||||
|
||||
@@ -83,6 +83,7 @@ func (suite *ConfigTestSuite) TestValidateConfDefault() {
|
||||
assert.Equal(suite.T(), "pem", suite.ConfGorushDefault.Ios.KeyType)
|
||||
assert.Equal(suite.T(), "", suite.ConfGorushDefault.Ios.Password)
|
||||
assert.Equal(suite.T(), false, suite.ConfGorushDefault.Ios.Production)
|
||||
assert.Equal(suite.T(), uint(100), suite.ConfGorushDefault.Ios.MaxConcurrentPushes)
|
||||
assert.Equal(suite.T(), 0, suite.ConfGorushDefault.Ios.MaxRetry)
|
||||
assert.Equal(suite.T(), "", suite.ConfGorushDefault.Ios.KeyID)
|
||||
assert.Equal(suite.T(), "", suite.ConfGorushDefault.Ios.TeamID)
|
||||
@@ -159,6 +160,7 @@ func (suite *ConfigTestSuite) TestValidateConf() {
|
||||
assert.Equal(suite.T(), "pem", suite.ConfGorush.Ios.KeyType)
|
||||
assert.Equal(suite.T(), "", suite.ConfGorush.Ios.Password)
|
||||
assert.Equal(suite.T(), false, suite.ConfGorush.Ios.Production)
|
||||
assert.Equal(suite.T(), uint(100), suite.ConfGorush.Ios.MaxConcurrentPushes)
|
||||
assert.Equal(suite.T(), 0, suite.ConfGorush.Ios.MaxRetry)
|
||||
assert.Equal(suite.T(), "", suite.ConfGorush.Ios.KeyID)
|
||||
assert.Equal(suite.T(), "", suite.ConfGorush.Ios.TeamID)
|
||||
|
||||
1
config/testdata/config.yml
vendored
1
config/testdata/config.yml
vendored
@@ -50,6 +50,7 @@ ios:
|
||||
key_type: "pem" # could be pem, p12 or p8 type
|
||||
password: "" # certificate password, default as empty string.
|
||||
production: false
|
||||
max_concurrent_pushes: 100 # just for push ios notification
|
||||
max_retry: 0 # resend fail notification, default value zero is disabled
|
||||
key_id: "" # KeyID from developer account (Certificates, Identifiers & Profiles -> Keys)
|
||||
team_id: "" # TeamID from developer account (View Account -> Membership)
|
||||
|
||||
Reference in New Issue
Block a user