Skip to content

Commit

Permalink
add github action to publish new release after push to release tag
Browse files Browse the repository at this point in the history
Signed-off-by: Eugene Klimov <[email protected]>
  • Loading branch information
Slach committed Dec 16, 2020
1 parent 7957701 commit 723142b
Show file tree
Hide file tree
Showing 10 changed files with 195 additions and 21 deletions.
2 changes: 1 addition & 1 deletion .bumpversion.cfg
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[bumpversion]
commit = True
tag = False
tag = True
current_version = 2.2.0

[bumpversion:file:package.json]
Expand Down
158 changes: 158 additions & 0 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
name: Release

on:
push:
tags:
- '*.*.*' # Run workflow on version tags, e.g. v1.0.0.

jobs:
release:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2

- name: Setup packages
id: setup-packages
run: |
apt-get update -y
apt-get install -y zip zstd jq git
- name: Setup Node.js environment
uses: actions/[email protected]
with:
node-version: '12.x'

- name: Setup Go environment
uses: actions/setup-go@v2
with:
go-version: '1.15'

- name: Cache node_modules
id: cache-node-modules
uses: actions/cache@v2
with:
path: node_modules
key: ${{ runner.os }}-${{ matrix.node-version }}-nodemodules-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-${{ matrix.node-version }}-nodemodules-
- name: Cache golang
id: cache-golang
uses: actions/cache@v2
with:
path: /go/pkg/mod
key: ${{ runner.os }}-${{ matrix.golang-version }}-golang-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-${{ matrix.golang-version }}-golang-
- name: Install nodejs dependencies
run: npm install --production=false
if: |
steps.cache-node-modules.outputs.cache-hit != 'true'
- name: Install golang dependencies
run: go mod download -x
if: |
steps.cache-golang.outputs.cache-hit != 'true'
- name: Build frontend
run: npm run build:prod

- name: Test frontend
run: npm run test

- name: Build backend
run: |
GOOS=linux GOARCH=amd64 go build -o ./dist/vertamedia-clickhouse-plugin_linux_amd64 . && \
GOOS=linux GOARCH=arm64 go build -o ./dist/vertamedia-clickhouse-plugin_linux_arm64 . && \
GOOS=windows GOARCH=amd64 go build -o ./dist/vertamedia-clickhouse-plugin_windows_amd64.exe . && \
GOOS=darwin GOARCH=amd64 go build -o ./dist/vertamedia-clickhouse-plugin_darwin_amd64 . && \
# GOOS=darwin GOARCH=arm64 go build -o ./dist/vertamedia-clickhouse-plugin_darwin_arm64 . && \
chmod +x ./dist/vertamedia-clickhouse-plugin*
- name: Sign plugin
env:
GRAFANA_API_KEY: ${{ secrets.GRAFANA_API_KEY }} # Requires a Grafana API key from Grafana.com.
run: node ./node_modules/@grafana/toolkit/bin/grafana-toolkit.js plugin:sign

- name: Get plugin metadata
id: metadata
run: |
export GRAFANA_PLUGIN_ID=$(cat dist/plugin.json | jq -r .id)
export GRAFANA_PLUGIN_VERSION=$(cat dist/plugin.json | jq -r .info.version)
export GRAFANA_PLUGIN_TYPE=$(cat dist/plugin.json | jq -r .type)
export GRAFANA_PLUGIN_ARTIFACT=${GRAFANA_PLUGIN_ID}-${GRAFANA_PLUGIN_VERSION}.zip
export GRAFANA_PLUGIN_ARTIFACT_CHECKSUM=${GRAFANA_PLUGIN_ARTIFACT}.md5
echo "::set-output name=plugin-id::${GRAFANA_PLUGIN_ID}"
echo "::set-output name=plugin-version::${GRAFANA_PLUGIN_VERSION}"
echo "::set-output name=plugin-type::${GRAFANA_PLUGIN_TYPE}"
echo "::set-output name=archive::${GRAFANA_PLUGIN_ARTIFACT}"
echo "::set-output name=archive-checksum::${GRAFANA_PLUGIN_ARTIFACT_CHECKSUM}"
echo ::set-output name=github-tag::${GITHUB_REF#refs/*/}
- name: Read changelog
id: changelog
run: |
awk '/^# / {s++} s == 1 {print}' CHANGELOG.md > /tmp/release_notes.md
echo "::set-output name=path::/tmp/release_notes.md"
- name: Package plugin
id: package-plugin
run: |
mkdir -p /tmp/${{ steps.metadata.outputs.plugin-id }}
cp -rfv dist/* /tmp/${{ steps.metadata.outputs.plugin-id }}/
pushd /tmp/
zip ${{ steps.metadata.outputs.archive }} ${{ steps.metadata.outputs.plugin-id }} -r
md5sum ${{ steps.metadata.outputs.archive }} > /tmp/${{ steps.metadata.outputs.archive-checksum }}
echo "::set-output name=checksum::$(cat /tmp/${{ steps.metadata.outputs.archive-checksum }} | cut -d' ' -f1)"
popd
- name: Lint plugin
run: |
git clone https://github.com/grafana/plugin-validator /tmp/plugin-validator
pushd /tmp/plugin-validator/cmd/plugincheck
go install
popd
plugincheck /tmp/${{ steps.metadata.outputs.archive }} -strict
- name: Create release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: ${{ github.ref }}
body_path: ${{ steps.changelog.outputs.path }}
draft: true

- name: Add plugin to release
id: upload-plugin-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: /tmp/${{ steps.metadata.outputs.archive }}
asset_name: ${{ steps.metadata.outputs.archive }}
asset_content_type: application/zip

- name: Add checksum to release
id: upload-checksum-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: /tmp/${{ steps.metadata.outputs.archive-checksum }}
asset_name: ${{ steps.metadata.outputs.archive-checksum }}
asset_content_type: text/plain

- name: Publish to Grafana.com
run: |
echo Publish your plugin to grafana.com/plugins by opening a PR to https://github.com/grafana/grafana-plugin-repository with the following entry:
echo
echo '{ "id": "${{ steps.metadata.outputs.plugin-id }}", "type": "${{ steps.metadata.outputs.plugin-type }}", "url": "https://github.com/${{ github.repository }}", "versions": [ { "version": "${{ steps.metadata.outputs.plugin-version }}", "commit": "${{ github.sha }}", "url": "https://github.com/${{ github.repository }}", "download": { "any": { "url": "${{ steps.upload-plugin-asset.outputs.browser_download_url }}", "md5": "${{ steps.package-plugin.outputs.checksum }}" } } } ] }' | jq .
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@ yarn.lock
package-lock.json
.cache
.release_env
.env
ubuntu*.log
19 changes: 17 additions & 2 deletions Vagrantfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ end


Vagrant.configure(2) do |config|
config.vm.box = "ubuntu/bionic64"
config.vm.box = "ubuntu/focal64"
config.vm.box_check_update = false
config.vm.synced_folder ".", "/vagrant", type: "nfs"
# config.vm.synced_folder ".", "/vagrant", type: "nfs"

if Vagrant.has_plugin?("vagrant-vbguest")
config.vbguest.auto_update = false
Expand Down Expand Up @@ -43,6 +43,18 @@ Vagrant.configure(2) do |config|
apt-get install --no-install-recommends -y apt-transport-https ca-certificates software-properties-common curl
apt-get install --no-install-recommends -y htop ethtool mc curl wget jq socat git
# docker
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8D81803C0EBFCD88
add-apt-repository "deb https://download.docker.com/linux/ubuntu focal edge"
apt-get install --no-install-recommends -y docker-ce
# docker compose
apt-get install -y --no-install-recommends python3-distutils
curl -sL https://bootstrap.pypa.io/get-pip.py -o /tmp/get-pip.py
python3 /tmp/get-pip.py
pip3 install -U setuptools
pip3 install -U docker-compose
# clickhouse
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E0C56BD4
Expand All @@ -68,5 +80,8 @@ Vagrant.configure(2) do |config|
grafana-cli plugins update vertamedia-clickhouse-datasource
systemctl start grafana-server
grafana-cli plugins ls
# github actions local
curl https://raw.githubusercontent.com/nektos/act/master/install.sh | bash
SHELL
end
34 changes: 17 additions & 17 deletions dist/MANIFEST.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,34 +9,34 @@ Hash: SHA512
"signedByOrgName": "Vertamedia",
"plugin": "vertamedia-clickhouse-datasource",
"version": "2.2.0",
"time": 1607951813416,
"time": 1608089153471,
"keyId": "7e4d0c6a708866e7",
"files": {
"img\\annotations.png": "09cc19df992fede5c4dd830f7b3c7a783702feced07ea9693d417ec127077b00",
"img\\clickhouse_logo.svg": "111c2048c9bad4a11b0273cf17839696d98968c04cdcc5ea0716bdc973f2e8e4",
"img\\datasource.png": "8d6dcdddfad512abed8c251404f652383f63ad17bc5c7cbe3e67ad9e6fa0327f",
"img\\query_editor.png": "b8d50f644d413b15aaf0d7b71fdfa4423f1a045761ec368b19a15e3d1aaf9308",
"img/annotations.png": "09cc19df992fede5c4dd830f7b3c7a783702feced07ea9693d417ec127077b00",
"img/clickhouse_logo.svg": "111c2048c9bad4a11b0273cf17839696d98968c04cdcc5ea0716bdc973f2e8e4",
"img/datasource.png": "8d6dcdddfad512abed8c251404f652383f63ad17bc5c7cbe3e67ad9e6fa0327f",
"img/query_editor.png": "b8d50f644d413b15aaf0d7b71fdfa4423f1a045761ec368b19a15e3d1aaf9308",
"LICENSE": "a434fc6dd97d5c425c6edbeff0276afd60ab5fffab3ed2c563f95a389502d074",
"module.js": "3c7c7e44b69f8ce10a6727a5896452f270ba8edda0adfd01ee7cf67c4b8c41e7",
"module.js.map": "b42c39c5041378a3bd66ad99acc2d453d030af94aadb5331ef241ecb4c2a934f",
"partials\\annotations.editor.html": "14d2d5add7f13c7c722e33bbc53ef83750fb624e5f7d6efee4a9568addc2ab78",
"partials\\config.html": "51ba130304c63c1a00590a9dc94c8351ff6277e4cf695720de57bff87aeec744",
"partials\\query.editor.html": "eb9ab7af412a922ea2ce09c86b99a75ba70000977a5fd882b8e327a2a27e1904",
"partials/annotations.editor.html": "14d2d5add7f13c7c722e33bbc53ef83750fb624e5f7d6efee4a9568addc2ab78",
"partials/config.html": "51ba130304c63c1a00590a9dc94c8351ff6277e4cf695720de57bff87aeec744",
"partials/query.editor.html": "eb9ab7af412a922ea2ce09c86b99a75ba70000977a5fd882b8e327a2a27e1904",
"plugin.json": "625340b320494c41964bc8ab3c105a3430036b39a570f09f9e2fcd413b9e88e0",
"README.md": "3194fcabb4b7ea1666d2d805a633555afbbe8f45e1e6cd73e3c21d0456cd5f46",
"vertamedia-clickhouse-plugin_darwin_amd64": "41521cc48abac36573ba8994051ae64ea789a77ddf0aab0e6a42db666e63f413",
"vertamedia-clickhouse-plugin_linux_amd64": "d15acd393294b150eae0c2d0114e21afe2ffee9161ef146c97a9d0ca5c0793b9",
"vertamedia-clickhouse-plugin_linux_arm64": "ec89419e6e7717184f3a29f8efd7a42e564cb8c990b097e752c3b5e390e5786f",
"vertamedia-clickhouse-plugin_windows_amd64.exe": "77d4e6096b5d3463e86f8639e8ddd9a0197d500dd29e5ee8b8ed2572e8ff0319"
"vertamedia-clickhouse-plugin_darwin_amd64": "91e4623eb08f5e34b3f4c3a5fc7b2a1f7e1f7bf08e92e4ccf1ab9789f2d4a45e",
"vertamedia-clickhouse-plugin_linux_amd64": "d82fbdc64533a1747a6ef86b3ffab580016d88316122b51343aa4f3a9e6a117d",
"vertamedia-clickhouse-plugin_linux_arm64": "4b43a09498406d9d3dbdea1a1aeeb1b95d076e143e0105425e6e019ba2f63072",
"vertamedia-clickhouse-plugin_windows_amd64.exe": "6220ab6550e602876e9abaeabf012e0736db3fac84278384149d266037ffe5fd"
}
}
-----BEGIN PGP SIGNATURE-----
Version: OpenPGP.js v4.10.1
Comment: https://openpgpjs.org

wqEEARMKAAYFAl/XZcUACgkQfk0ManCIZuex1gIIigqN8O8waglyttpzB7WQ
OA2Op1PSo2/4qtLYarjhLZdk4fnW+KuUT+JQ2UJdCdsyTDU73ulrgcBnUM7+
ViHl4pwCCQHPN9TUPfxvsULaiqRpuGmrUvQY8wCpW/FVD/oFyd2l988IWV8D
OVwbHnuVe4O7T+5u2VBzXeCA+yNwF8fGq4KThQ==
=S1BN
wqIEARMKAAYFAl/ZfkEACgkQfk0ManCIZud6xAIJAf8QB6f71+ohWwCEmSJv
vX9sFze8x+fbNrM7DUcfYX9zUIlyjz/DJE9Ov6IeNIljtOQUIS6BcntlKHMu
C8cjUWarAgkBs3PIlX//llif04PXuldQ97xHgUAqNpQbdu0CTRDwzPLr1UWJ
xepBURNx1JcSE/qWxHnersRRYRqLeqPa5ZtdMKY=
=mTmG
-----END PGP SIGNATURE-----
Binary file modified dist/vertamedia-clickhouse-plugin_darwin_amd64
Binary file not shown.
Binary file modified dist/vertamedia-clickhouse-plugin_linux_amd64
Binary file not shown.
Binary file modified dist/vertamedia-clickhouse-plugin_linux_arm64
Binary file not shown.
Binary file modified dist/vertamedia-clickhouse-plugin_windows_amd64.exe
Binary file not shown.
2 changes: 1 addition & 1 deletion release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,4 @@ bump2version --verbose $1
docker-compose run plugin_signer
git add .
git commit -s -m "sign plugin, $(grep current_version .bumpversion.cfg)"
git push
git push --tags

0 comments on commit 723142b

Please sign in to comment.