-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #3 from DFE-Digital/AddGithubActions
Added New GitHub actions
- Loading branch information
Showing
12 changed files
with
282 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,104 @@ | ||
name: CI | ||
|
||
on: | ||
push: | ||
branches: | ||
- master | ||
- main | ||
pull_request: | ||
branches: | ||
- master | ||
- main | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v3 | ||
|
||
- name: Find and Change Directory | ||
run: | | ||
DIRECTORY=$(find . -type d -name "dfe-azurecostbackend-datasource" -print -quit) | ||
if [ -n "$DIRECTORY" ]; then | ||
echo "Directory found: $DIRECTORY" | ||
cd $DIRECTORY | ||
pwd | ||
else | ||
echo "Directory not found" | ||
exit 1 | ||
fi | ||
- name: Setup Node.js | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: '20.10.0' | ||
|
||
|
||
- name: Change Directory | ||
run: cd /home/runner/work/Grafana.Plugin.CostManagement/Grafana.Plugin.CostManagement/dfe-azurecostbackend-datasource | ||
- name: Install dependencies and run npm commands | ||
run: | | ||
cd /home/runner/work/Grafana.Plugin.CostManagement/Grafana.Plugin.CostManagement/dfe-azurecostbackend-datasource | ||
npm install | ||
npm ci | ||
npm run typecheck | ||
npm run lint | ||
npm run test:ci | ||
npm run build | ||
shell: bash | ||
|
||
- name: Check for backend | ||
id: check-for-backend | ||
run: | | ||
if [ -f "/home/runner/work/Grafana.Plugin.CostManagement/Grafana.Plugin.CostManagement/dfe-azurecostbackend-datasource/Magefile.go" ]; then | ||
echo "has-backend=true" >> $GITHUB_OUTPUT | ||
fi | ||
- name: Setup Go environment | ||
if: steps.check-for-backend.outputs.has-backend == 'true' | ||
uses: actions/setup-go@v4 | ||
with: | ||
go-version: '^1.21.4' | ||
check-latest: true | ||
- run: go version | ||
|
||
- name: Install Mage | ||
run: | | ||
git clone https://github.com/magefile/mage | ||
cd mage | ||
go run bootstrap.go | ||
- name: Build backend | ||
if: steps.check-for-backend.outputs.has-backend == 'true' | ||
run: | | ||
mage -v build:linux | ||
working-directory: ${{ github.workspace }}/dfe-azurecostbackend-datasource | ||
|
||
- name: Check for E2E | ||
id: check-for-e2e | ||
run: | | ||
if [ -d "cypress" ] | ||
then | ||
echo "has-e2e=true" >> $GITHUB_OUTPUT | ||
fi | ||
- name: Start grafana docker | ||
if: steps.check-for-e2e.outputs.has-e2e == 'true' | ||
run: docker-compose up -d | ||
|
||
- name: Run e2e tests | ||
if: steps.check-for-e2e.outputs.has-e2e == 'true' | ||
run: npm run e2e | ||
|
||
- name: Stop grafana docker | ||
if: steps.check-for-e2e.outputs.has-e2e == 'true' | ||
run: docker-compose down | ||
|
||
#- name: Archive E2E output | ||
# uses: actions/upload-artifact@v3 | ||
# if: steps.check-for-e2e.outputs.has-e2e == 'true' && steps.run-e2e-tests.outcome != 'success' | ||
# with: | ||
# name: cypress-videos | ||
# path: cypress/videos | ||
# retention-days: 5 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,159 @@ | ||
name: Release | ||
|
||
on: | ||
workflow_dispatch: | ||
push: | ||
tags: | ||
- 'v*' # Run workflow on version tags, e.g. v1.0.0. | ||
|
||
jobs: | ||
release: | ||
runs-on: ubuntu-latest | ||
#env: | ||
# usage of GRAFANA_API_KEY is deprecated | ||
# GRAFANA_API_KEY: ${{ secrets.GRAFANA_API_KEY }} | ||
# GRAFANA_ACCESS_POLICY_TOKEN: ${{ secrets.GRAFANA_ACCESS_POLICY_TOKEN }} | ||
steps: | ||
- run: echo ${GITHUB_WORKSPACE} | ||
- uses: actions/checkout@v3 | ||
|
||
# - name: Change Directory | ||
# run: cd /home/runner/work/Grafana.Plugin.CostManagement/Grafana.Plugin.CostManagement/dfe-azurecostbackend-datasource | ||
# - name: Install dependencies and run npm commands | ||
# run: | | ||
# cd /home/runner/work/Grafana.Plugin.CostManagement/Grafana.Plugin.CostManagement/dfe-azurecostbackend-datasource | ||
# npm install | ||
# npm ci | ||
# npm run typecheck | ||
# npm run lint | ||
# npm run test:ci | ||
# npm run build | ||
# shell: bash | ||
|
||
|
||
- name: Setup Node.js environment | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: '20.9.0' | ||
cache: 'npm' | ||
cache-dependency-path: /home/runner/work/Grafana.Plugin.CostManagement/Grafana.Plugin.CostManagement/dfe-azurecostbackend-datasource/package-lock.json | ||
|
||
|
||
- name: Setup Go environment | ||
uses: actions/setup-go@v4 | ||
with: | ||
go-version: '^1.21.4' | ||
check-latest: true | ||
- run: go version | ||
|
||
- name: Install dependencies | ||
run: npm ci | ||
|
||
- name: Build and test frontend | ||
run: npm run build | ||
|
||
# - name: Check for backend | ||
# id: check-for-backend | ||
# run: | | ||
# if [ -f "Magefile.go" ] | ||
# then | ||
# echo "has-backend=true" >> $GITHUB_OUTPUT | ||
# fi | ||
|
||
- name: Check for backend | ||
id: check-for-backend | ||
run: | | ||
if [ -f "/home/runner/work/Grafana.Plugin.CostManagement/Grafana.Plugin.CostManagement/dfe-azurecostbackend-datasource/Magefile.go" ]; then | ||
echo "has-backend=true" >> $GITHUB_OUTPUT | ||
fi | ||
- name: Install Mage | ||
run: | | ||
git clone https://github.com/magefile/mage | ||
cd mage | ||
go run bootstrap.go | ||
- name: Build backend | ||
if: steps.check-for-backend.outputs.has-backend == 'true' | ||
run: | | ||
mage -v build:linux | ||
working-directory: ${{ github.workspace }}/dfe-azurecostbackend-datasource | ||
|
||
- name: Warn missing Grafana access policy token | ||
run: | | ||
echo Please generate a Grafana access policy token: https://grafana.com/developers/plugin-tools/publish-a-plugin/sign-a-plugin#generate-an-access-policy-token | ||
echo Once done please follow the instructions found here: https://github.com/${{github.repository}}/blob/main/README.md#using-github-actions-release-workflow | ||
# if: ${{ env.GRAFANA_ACCESS_POLICY_TOKEN == '' }} | ||
|
||
- name: Sign plugin | ||
run: npm run sign | ||
# if: ${{ env.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 | ||
echo "path=release_notes.md" >> $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: Validate plugin | ||
run: | | ||
git clone https://github.com/grafana/plugin-validator | ||
pushd ./plugin-validator/pkg/cmd/plugincheck2 | ||
go install | ||
popd | ||
plugincheck2 -config ./plugin-validator/config/default.yaml ${{ steps.metadata.outputs.archive }} | ||
- name: Create Github release | ||
uses: softprops/action-gh-release@v1 | ||
with: | ||
draft: true | ||
generate_release_notes: true | ||
files: | | ||
./${{ steps.metadata.outputs.archive }} | ||
./${{ steps.metadata.outputs.archive-checksum }} | ||
body: | | ||
**This Github draft release has been created for your plugin.** | ||
_Note: if this is the first release for your plugin please consult the [distributing-your-plugin section](https://github.com/${{github.repository}}/blob/main/README.md#distributing-your-plugin) of the README_ | ||
If you would like to submit this release to Grafana please consider the following steps: | ||
- Check the Validate plugin step in the [release workflow](https://github.com/${{github.repository}}/commit/${{github.sha}}/checks/${{github.run_id}}) for any warnings that need attention | ||
- Navigate to https://grafana.com/auth/sign-in/ to sign into your account | ||
- Once logged in click **My Plugins** in the admin navigation | ||
- Click the **Submit Plugin** button | ||
- Fill in the Plugin Submission form: | ||
- Paste this [.zip asset link](https://github.com/${{ github.repository }}/releases/download/v${{ steps.metadata.outputs.plugin-version }}/${{ steps.metadata.outputs.archive }}) in the Plugin URL field | ||
- Paste this [.zip.md5 link](https://github.com/${{ github.repository }}/releases/download/v${{ steps.metadata.outputs.plugin-version }}/${{ steps.metadata.outputs.archive-checksum }}) in the MD5 field | ||
Once done please remove these instructions and publish this release. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
name: Manual Test | ||
|
||
on: | ||
workflow_dispatch: | ||
|
||
jobs: | ||
do-something: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- run: echo "Hello I have been triggered Manually" |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -183,3 +183,4 @@ export function ConfigEditor(props: Props) { | |
</div> | ||
); | ||
} | ||
|
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -30,3 +30,4 @@ export function QueryEditor({ query, onChange, onRunQuery }: Props) { | |
</div> | ||
); | ||
} | ||
|
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -12,3 +12,4 @@ export class DataSource extends DataSourceWithBackend<MyQuery, MyDataSourceOptio | |
return DEFAULT_QUERY | ||
} | ||
} | ||
|
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -28,3 +28,4 @@ export interface MySecureJsonData { | |
SubscriptionID?: string; | ||
Region?: string; | ||
} | ||
|