Automate github releases (#1263)
This commit is contained in:
parent
0961e1039e
commit
58bd36e79e
28
Makefile
28
Makefile
|
@ -1,6 +1,11 @@
|
||||||
.PHONY: statusgo statusd-prune all test xgo clean help
|
.PHONY: statusgo statusd-prune all test xgo clean help
|
||||||
.PHONY: statusgo-android statusgo-ios
|
.PHONY: statusgo-android statusgo-ios
|
||||||
|
|
||||||
|
RELEASE_TAG := $(shell cat VERSION)
|
||||||
|
RELEASE_BRANCH := "develop"
|
||||||
|
RELEASE_DIRECTORY := /tmp/release-$(RELEASE_TAG)
|
||||||
|
PRE_RELEASE := "1"
|
||||||
|
|
||||||
help: ##@other Show this help
|
help: ##@other Show this help
|
||||||
@perl -e '$(HELP_FUN)' $(MAKEFILE_LIST)
|
@perl -e '$(HELP_FUN)' $(MAKEFILE_LIST)
|
||||||
|
|
||||||
|
@ -201,12 +206,33 @@ xgo:
|
||||||
install-os-dependencies:
|
install-os-dependencies:
|
||||||
_assets/scripts/install_deps.sh
|
_assets/scripts/install_deps.sh
|
||||||
|
|
||||||
setup: install-os-dependencies dep-install lint-install mock-install gen-install update-fleet-config ##@other Prepare project for first build
|
setup: install-os-dependencies dep-install lint-install mock-install deploy-install gen-install update-fleet-config ##@other Prepare project for first build
|
||||||
|
|
||||||
generate: ##@other Regenerate assets and other auto-generated stuff
|
generate: ##@other Regenerate assets and other auto-generated stuff
|
||||||
go generate ./static ./static/migrations
|
go generate ./static ./static/migrations
|
||||||
$(shell cd ./services/shhext/chat && exec protoc --go_out=. ./*.proto)
|
$(shell cd ./services/shhext/chat && exec protoc --go_out=. ./*.proto)
|
||||||
|
|
||||||
|
prepare-release: clean-release
|
||||||
|
mkdir -p $(RELEASE_DIRECTORY)
|
||||||
|
mv build/bin/statusgo-android-16.aar $(RELEASE_DIRECTORY)/status-go-android.aar
|
||||||
|
mv build/bin/statusgo-ios-9.3-framework/status-go-ios.zip $(RELEASE_DIRECTORY)/status-go-ios.zip
|
||||||
|
${MAKE} clean
|
||||||
|
zip -r $(RELEASE_DIRECTORY)/status-go-desktop.zip . -x *.git*
|
||||||
|
|
||||||
|
clean-release:
|
||||||
|
rm -rf $(RELEASE_DIRECTORY)
|
||||||
|
|
||||||
|
release:
|
||||||
|
@read -p "Are you sure you want to create a new GitHub $(shell if [[ $(PRE_RELEASE) = "0" ]] ; then echo release; else echo pre-release ; fi) against $(RELEASE_BRANCH) branch? (y/n): " REPLY; \
|
||||||
|
if [ $$REPLY = "y" ]; then \
|
||||||
|
github-release $(shell if [[ $(PRE_RELEASE) != "0" ]] ; then echo "-prerelease" ; fi) "status-im/status-go" "$(RELEASE_TAG)" "$(RELEASE_BRANCH)" "" "$(RELEASE_DIRECTORY)/*" ; \
|
||||||
|
else \
|
||||||
|
echo "Aborting." && exit 1; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
deploy-install:
|
||||||
|
go get -u github.com/c4milo/github-release
|
||||||
|
|
||||||
gen-install:
|
gen-install:
|
||||||
go get -u github.com/jteeuwen/go-bindata/...
|
go get -u github.com/jteeuwen/go-bindata/...
|
||||||
go get -u github.com/golang/protobuf/protoc-gen-go
|
go get -u github.com/golang/protobuf/protoc-gen-go
|
||||||
|
|
17
README.md
17
README.md
|
@ -11,3 +11,20 @@
|
||||||
# License
|
# License
|
||||||
|
|
||||||
[Mozilla Public License 2.0](https://github.com/status-im/status-go/blob/develop/LICENSE.md)
|
[Mozilla Public License 2.0](https://github.com/status-im/status-go/blob/develop/LICENSE.md)
|
||||||
|
|
||||||
|
### Releasing
|
||||||
|
|
||||||
|
To create a release, first increase the `VERSION` file according to semantic versioning.
|
||||||
|
|
||||||
|
You can then build the artifacts for the specific platform.
|
||||||
|
|
||||||
|
Once done, you can run:
|
||||||
|
|
||||||
|
`make prepare-release`
|
||||||
|
|
||||||
|
and
|
||||||
|
|
||||||
|
`make release release_branch={{release_branch}}`
|
||||||
|
|
||||||
|
Where `release_branch` is the branch you are targeting.
|
||||||
|
You will also need to specify some form of credentials, `GITHUB_TOKEN` environment variable for example.
|
||||||
|
|
|
@ -71,32 +71,18 @@ node('linux') {
|
||||||
|
|
||||||
stage('Deploy') {
|
stage('Deploy') {
|
||||||
dir(cloneDir) {
|
dir(cloneDir) {
|
||||||
// For branch builds, replace the old artifact. For develop keep all of them.
|
sh "make prepare-release"
|
||||||
def version = sh(
|
withCredentials([[
|
||||||
script: "git describe --exact-match --tag 2>/dev/null || git describe --always",
|
$class: 'UsernamePasswordMultiBinding',
|
||||||
returnStdout: true
|
credentialsId: 'status-im-auto',
|
||||||
).trim()
|
usernameVariable: 'GITHUB_USER',
|
||||||
def server = Artifactory.server 'artifacts'
|
passwordVariable: 'GITHUB_TOKEN'
|
||||||
def uploadSpec = """{
|
]]) {
|
||||||
"files": [
|
sh """
|
||||||
{
|
yes | make release release_branch=${gitBranch}
|
||||||
"pattern": "build/bin/statusgo-android-16.aar",
|
"""
|
||||||
"target": "libs-release-local/status-im/status-go/${version}/status-go-${version}.aar"
|
}
|
||||||
},
|
sh "make clean-release"
|
||||||
{
|
|
||||||
"pattern": "build/bin/statusgo-ios-9.3-framework/status-go-ios.zip",
|
|
||||||
"target": "libs-release-local/status-im/status-go-ios-simulator/${version}/status-go-ios-simulator-${version}.zip"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}"""
|
|
||||||
|
|
||||||
def buildInfo = Artifactory.newBuildInfo()
|
|
||||||
buildInfo.env.capture = false
|
|
||||||
buildInfo.name = 'status-go (' + gitBranch + '-' + gitShortSHA + ')'
|
|
||||||
server.upload(uploadSpec, buildInfo)
|
|
||||||
server.publishBuildInfo(buildInfo)
|
|
||||||
|
|
||||||
slackSend color: 'good', message: 'status-go `' + version + '` was built successfully. ' + env.BUILD_URL
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue