-
Notifications
You must be signed in to change notification settings - Fork 1
/
build.rb
154 lines (121 loc) · 3.29 KB
/
build.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
#! /usr/bin/env ruby
all = [
'Python',
'Ruby',
'JavaScript',
'PHP',
'C',
'Go',
'Java',
'CSharp',
'C-Media',
'OSSFS'
]
puts <<EEE
# OSS SDK Status
Language | Version | Build | Coverage | Stars | Issues
--- | --- | --- | --- | --- | ---
EEE
def name_for(s, n)
"#{s}-#{n}".downcase
end
COLS = ['repo', 'version', 'build', 'coverage', 'star', 'issue']
all.each do |s|
cols = COLS.map { |x|
if x == 'repo'
text = (s == 'CSharp' ? 'C#' : s)
link = name_for(s, x)
"[#{text}][#{link}]"
else
link = name_for(s, x)
alt = link.capitalize
"![#{alt}][#{link}]"
end
}
puts cols.join(' | ')
end
puts
def repo_name(s)
lang = s.downcase
if lang == 'c-media'
'aliyun/aliyun-media-c-sdk'
elsif lang == 'javascript'
'ali-sdk/ali-oss'
elsif lang == 'ossfs'
'aliyun/ossfs'
else
"aliyun/aliyun-oss-#{lang}-sdk"
end
end
def repo_for(s)
"https://github.com/#{repo_name(s)}"
end
def version_for(s)
{
'python' => 'https://badge.fury.io/py/oss2.svg',
'ruby' => 'https://badge.fury.io/rb/aliyun-sdk.svg',
'php' => 'https://poser.pugx.org/aliyuncs/oss-sdk-php/v/stable',
'java' => 'https://badge.fury.io/gh/aliyun%2Faliyun-oss-java-sdk.svg',
'csharp' => 'https://badge.fury.io/gh/aliyun%2Faliyun-oss-csharp-sdk.svg',
'javascript' => 'https://badge.fury.io/js/ali-oss.svg',
'go' => 'https://badge.fury.io/gh/aliyun%2Faliyun-oss-go-sdk.svg',
'c' => 'https://badge.fury.io/gh/aliyun%2Faliyun-oss-c-sdk.svg',
'c-media' => 'https://badge.fury.io/gh/aliyun%2Faliyun-media-c-sdk.svg',
'ossfs' => 'https://badge.fury.io/gh/aliyun%2Fossfs.svg'
}[s.downcase]
end
def build_for(s)
"https://travis-ci.org/#{repo_name(s)}.svg?branch=master"
end
def coverage_for(s)
lang = s.downcase
if lang == 'javascript'
"http://codecov.io/github/#{repo_name(s)}/coverage.svg?branch=master"
else
"https://coveralls.io/repos/#{repo_name(s)}/badge.svg?branch=master"
end
end
def star_for(s)
"https://img.shields.io/github/stars/#{repo_name(s)}.svg?style=social&label=Star&maxAge=3600"
end
def issue_for(s)
"https://img.shields.io/github/issues/#{repo_name(s)}.svg?maxAge=3600"
end
all.each do |s|
COLS.each do |c|
value = self.send("#{c}_for", s)
puts "[#{name_for(s, c)}]: #{value}"
end
puts
end
### Development flow
puts <<EEE
# Development (OSS members only)
We prefer the *branch way* to the *fork way*, in order to run function
tests in travis CI. **DO NOT** push directly to master branch unless
you're making trivial changes such as fixing typo.
## Clone
```bash
git clone [email protected]:aliyun/aliyun-oss-ruby-sdk.git
```
## Branch
Pick a branch name for your change and then:
```bash
cd aliyun-oss-ruby-sdk
git branch refine-readme
git checkout refine-readme
# edit files
git add xxx
git commit -m "bla bla bla"
git push origin refine-readme
```
## Pull request
Create a pull request from branch `refine-readme` to `master`:
![Create PR](create_pr.png?raw=true "Create pull request")
Follow the CLAAssistant and Sign CLA:
![Sign CLA](sign_cla.png?raw=true "Sign CLA")
Check the tests PASS and coverage DOES NOT DROP. Then Merge the pull
request and delete the branch:
![Accept PR](accept_pr.png?raw=true "Accept PR")
![Delete Branch](delete_branch.png?raw=true "Delete Branch")
EEE