要自己架设一个服务器来提供app更新,别说是配置服务器了,光是买个主机都很棘手。但是github提供了release功能,并有相关api支持。下面介绍如何使用github的release功能。
这里以DTU802 基于.net开发的iotgateway程序为例,硬件,软件界面如下:
在guthub上新建工程,创建release:
出现如下界面,上传文件和填写信息:
勾选了Pre-release,后API提示错误:
“message” : "Not Found",
"documentation_url" : "https://xxx"
}Publish Release:
![6bdb204bc9815ee576063c12b70e3d18.png](
通过github官方提供的api可访问我们的release信息:
/repos/:owner/:repo/releases/:id
https://api.github.com/repos/peixiuhui/IOTGate/releases/latest
获得最新版本号:
wget -qO- -t1 -T2 "https://api.github.com/repos/peixiuhui/IOTGate/releases/latest" | grep "tag_name" | head -n 1 | awk -F ":" '{print $2}' | sed 's/"//g;s/,//g;s/ //g'
huiwei@hwserver:Code$ wget -qO- -t1 -T2 "https://api.github.com/repos/peixiuhui/IOTGate/releases/latest"
{
"url": "https://api.github.com/repos/peixiuhui/IOTGate/releases/97256959",
"assets_url": "https://api.github.com/repos/peixiuhui/IOTGate/releases/97256959/assets",
"upload_url": "https://uploads.github.com/repos/peixiuhui/IOTGate/releases/97256959/assets{?name,label}",
"html_url": "https://github.com/peixiuhui/IOTGate/releases/tag/V20",
"id": 97256959,
"author": {
"login": "peixiuhui",
"id": 10824875,
"node_id": "MDQ6VXNlcjEwODI0ODc1",
"avatar_url": "https://avatars.githubusercontent.com/u/10824875?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/peixiuhui",
"html_url": "https://github.com/peixiuhui",
"followers_url": "https://api.github.com/users/peixiuhui/followers",
"following_url": "https://api.github.com/users/peixiuhui/following{/other_user}",
"gists_url": "https://api.github.com/users/peixiuhui/gists{/gist_id}",
"starred_url": "https://api.github.com/users/peixiuhui/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/peixiuhui/subscriptions",
"organizations_url": "https://api.github.com/users/peixiuhui/orgs",
"repos_url": "https://api.github.com/users/peixiuhui/repos",
"events_url": "https://api.github.com/users/peixiuhui/events{/privacy}",
"received_events_url": "https://api.github.com/users/peixiuhui/received_events",
"type": "User",
"site_admin": false
},
"node_id": "MDc6UmVsZWFzZTk3MjU2OTU5",
"tag_name": "V20",
"target_commitish": "master",
"name": "IOTGate",
"draft": false,
"prerelease": false,
"created_at": "2021-02-27T12:16:33Z",
"published_at": "2023-03-29T01:41:40Z",
"assets": [
{
"url": "https://api.github.com/repos/peixiuhui/IOTGate/releases/assets/101379606",
"id": 101379606,
"node_id": "RA_kwDOHMXgbs4GCu4W",
"name": "iotgateway.tar",
"label": null,
"uploader": {
"login": "peixiuhui",
"id": 10824875,
"node_id": "MDQ6VXNlcjEwODI0ODc1",
"avatar_url": "https://avatars.githubusercontent.com/u/10824875?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/peixiuhui",
"html_url": "https://github.com/peixiuhui",
"followers_url": "https://api.github.com/users/peixiuhui/followers",
"following_url": "https://api.github.com/users/peixiuhui/following{/other_user}",
"gists_url": "https://api.github.com/users/peixiuhui/gists{/gist_id}",
"starred_url": "https://api.github.com/users/peixiuhui/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/peixiuhui/subscriptions",
"organizations_url": "https://api.github.com/users/peixiuhui/orgs",
"repos_url": "https://api.github.com/users/peixiuhui/repos",
"events_url": "https://api.github.com/users/peixiuhui/events{/privacy}",
"received_events_url": "https://api.github.com/users/peixiuhui/received_events",
"type": "User",
"site_admin": false
},
"content_type": "application/x-tar",
"state": "uploaded",
"size": 170455040,
"download_count": 0,
"created_at": "2023-03-29T01:37:43Z",
"updated_at": "2023-03-29T01:38:47Z",
"browser_download_url": "https://github.com/peixiuhui/IOTGate/releases/download/V20/iotgateway.tar"
}
],
"tarball_url": "https://api.github.com/repos/peixiuhui/IOTGate/tarball/V20",
"zipball_url": "https://api.github.com/repos/peixiuhui/IOTGate/zipball/V20",
"body": "DTU802 .NET IOT APP"
}
huiwei@hwserver:Code$wget -qO- -t1 -T2 "https://api.github.com/repos/peixiuhui/IOTGate/releases/latest" | grep "tag_name" | head -n 1 | awk -F ":" '{print $2}' | sed 's/"//g;s/,//g;s/ //g'
V20
huiwei@hwserver:Code$
需要更新的话,将固件下载到本地==> md5校验,校验硬件型号,替换,等等... Go ...```