diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 41d6dad..3f6b72e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,25 +1,84 @@ -# This GitHub Action automates the process of building Grafana plugins. -# (For more information, see https://github.com/grafana/plugin-actions/blob/main/build-plugin/README.md) name: Release on: push: tags: - - 'v*' # Run workflow on version tags, e.g. v1.0.0. - -permissions: - contents: write + - 'v*.*.*' # Run workflow on version tags, e.g. v1.0.0. jobs: release: runs-on: ubuntu-latest + steps: - - uses: actions/checkout@v3 - - uses: grafana/plugin-actions/build-plugin@release - # Uncomment to enable plugin signing - # (For more info on how to generate the access policy token see https://grafana.com/developers/plugin-tools/publish-a-plugin/sign-a-plugin#generate-an-access-policy-token) - #with: - # Make sure to save the token in your repository secrets - #policy_token: $ - # Usage of GRAFANA_API_KEY is deprecated, prefer `policy_token` option above - #grafana_token: $ + - uses: actions/checkout@v4 + + - name: Setup Node.js environment + uses: actions/setup-node@v4 + with: + node-version: '20' + cache: 'npm' + + - name: Install dependencies + run: npm install + + - name: Build + run: npm run build + + - name: Sign plugin + run: npm run sign + env: + GRAFANA_ACCESS_POLICY_TOKEN: ${{ secrets.GRAFANA_ACCESS_POLICY_TOKEN }} + + - name: Get plugin metadata + id: metadata + run: | + sudo apt-get install jq + + 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 "plugin-id=${GRAFANA_PLUGIN_ID}" >> $GITHUB_OUTPUT + echo "plugin-version=${GRAFANA_PLUGIN_VERSION}" >> $GITHUB_OUTPUT + echo "plugin-type=${GRAFANA_PLUGIN_TYPE}" >> $GITHUB_OUTPUT + echo "archive=${GRAFANA_PLUGIN_ARTIFACT}" >> $GITHUB_OUTPUT + echo "archive-checksum=${GRAFANA_PLUGIN_ARTIFACT_CHECKSUM}" >> $GITHUB_OUTPUT + + echo "github-tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT + + - name: Read changelog + id: changelog + run: | + awk '/^## / {s++} s == 1 {print}' CHANGELOG.md > release_notes.md + export RELEASE_TITLE=$(head -1 release_notes.md|sed 's/## //') + awk 'NR > 2 { print }' release_notes.md > release_body.md + + echo "title=${RELEASE_TITLE}" >> $GITHUB_OUTPUT + echo "path=release_body.md" >> $GITHUB_OUTPUT + echo "version=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT + + - name: Check package version + run: if [ "v${{ steps.metadata.outputs.plugin-version }}" != "${{ steps.metadata.outputs.github-tag }}" ]; then printf "\033[0;31mPlugin version doesn't match tag name\033[0m\n"; exit 1; fi + + - name: Package plugin + id: package-plugin + run: | + mv dist ${{ steps.metadata.outputs.plugin-id }} + zip ${{ steps.metadata.outputs.archive }} ${{ steps.metadata.outputs.plugin-id }} -r + md5sum ${{ steps.metadata.outputs.archive }} > ${{ steps.metadata.outputs.archive-checksum }} + echo "checksum=$(cat ./${{ steps.metadata.outputs.archive-checksum }} | cut -d' ' -f1)" >> $GITHUB_OUTPUT + + - name: Create release + id: create_release + uses: softprops/action-gh-release@v1 + with: + tag_name: ${{ github.ref }} + name: ${{ steps.changelog.outputs.title }} + body_path: ${{ steps.changelog.outputs.path }} + token: ${{ secrets.GITHUB_TOKEN }} + draft: true + files: | + ./${{ steps.metadata.outputs.archive }} + ./${{ steps.metadata.outputs.archive-checksum }} diff --git a/CHANGELOG.md b/CHANGELOG.md index f57e272..4d69e8f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,17 +4,24 @@ All notable changes to the "Range Slider Panel" plugin will be documented in thi The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.1.10] - 2024-02-12 + +- Add sign plugin step in github workflow + ## [1.1.1] - 2024-01-23 + - Fix min and max threshold not being displayed - Add screenshot to plugin.json ## [1.1.0] - 2024-01-23 + - Allow only variables of type `textbox` to be selected - Remove default min and max values and use the values from the current variable value - Fix the bug where setting min and max values above the threshold crashed the panel - Add `delimiterSpace` variable to allow adding/removing space before and after the delimeter ## [1.0.1] - 2024-01-18 + - Add default prefix, delimiter and suffix if it is not defined - Allow select of variable from options diff --git a/package.json b/package.json index 0fa2811..eb44cd8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "my-first-plugin", - "version": "1.1.1", + "version": "1.1.10", "description": "Ui for textbox input variable", "scripts": { "build": "webpack -c ./.config/webpack/webpack.config.ts --env production", diff --git a/src/plugin.json b/src/plugin.json index 65a950f..de436b5 100644 --- a/src/plugin.json +++ b/src/plugin.json @@ -25,8 +25,8 @@ "path": "img/Anyline-Range-Slider.png" } ], - "version": "1.1.1", - "updated": "2024-01-23" + "version": "1.1.10", + "updated": "2024-04-17" }, "dependencies": { "grafanaDependency": ">=10.0.3",