Fix report generation by API requests #66
Workflow file for this run
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
# These workflows have been nicked from https://github.com/influxdata/grafana-flightsql-datasource | |
name: CI | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
# For nightly build releases | |
permissions: | |
contents: write | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup Node.js environment | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '16' | |
cache: 'yarn' | |
- name: Install dependencies | |
run: yarn install --immutable --prefer-offline | |
- name: Check types | |
run: yarn typecheck | |
- name: Lint | |
run: yarn lint | |
- name: Unit tests | |
run: yarn test:ci | |
- name: Build frontend | |
run: yarn build | |
- name: Check for backend | |
id: check-for-backend | |
run: | | |
if [ -f "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@v3 | |
with: | |
go-version: '1.21' | |
- name: Test backend | |
if: steps.check-for-backend.outputs.has-backend == 'true' | |
uses: magefile/mage-action@v3 | |
with: | |
version: latest | |
args: coverage | |
- name: Build backend | |
if: steps.check-for-backend.outputs.has-backend == 'true' | |
uses: magefile/mage-action@v3 | |
with: | |
version: latest | |
args: build | |
- name: Run e2e tests | |
run: | | |
docker-compose up --build -d | |
sleep 10 | |
yarn e2e | |
docker-compose down | |
- name: Run API test | |
run: | | |
GF_AUTH_BASIC_ENABLED=true GF_AUTH_ANONYMOUS_ENABLED=false docker-compose up --build -d | |
sleep 10 | |
# Generate report from API request using basic auth | |
curl -f -o report.pdf "http://admin:admin@localhost:3000/api/plugins/mahendrapaipuri-dashboardreporter-app/resources/report?dashUid=e472bbf0-140c-4852-a74b-1a4c32202659&from=now-5m&to=now&var-testvar0=0&var-testvar1=foo&var-testvar2=1" | |
docker-compose down | |
# Remove this once plugin review has been submitted | |
- name: Package plugin | |
# Grafana Labs review needs the plugin file in zip format with sha1 checksum | |
run: | | |
mv dist mahendrapaipuri-dashboardreporter-app | |
zip mahendrapaipuri-dashboardreporter-app-nightly.zip mahendrapaipuri-dashboardreporter-app -r | |
sha1sum mahendrapaipuri-dashboardreporter-app-nightly.zip | cut -f1 -d' ' > mahendrapaipuri-dashboardreporter-app-nightly.zip.sha1 | |
- name: Validate plugin | |
run: | | |
zip plugin-app.zip pkg/ src/ package.json -r | |
git clone https://github.com/grafana/plugin-validator | |
pushd ./plugin-validator/pkg/cmd/plugincheck2 | |
go install | |
popd | |
plugincheck2 -sourceCodeUri plugin-app.zip -config ./plugin-validator/config/pipeline.yaml mahendrapaipuri-dashboardreporter-app-nightly.zip | |
shell: bash | |
# Check if bootstrap script is working for latest release and nightly release | |
- name: Check bootstrap script | |
run: | | |
mkdir -p latest | |
cd latest | |
../scripts/bootstrap-dashboard-reporter-app.sh | |
cd .. | |
mkdir -p nightly | |
cd nightly | |
NIGHTLY=1 ../scripts/bootstrap-dashboard-reporter-app.sh | |
cd .. | |
shell: bash | |
- name: Upload plugin artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: plugin-artifacts | |
path: | | |
mahendrapaipuri-dashboardreporter-app-nightly.zip | |
mahendrapaipuri-dashboardreporter-app-nightly.zip.sha1 | |
retention-days: 3 | |
- name: Release nightly | |
uses: softprops/action-gh-release@v1 | |
# Only run on main branch | |
if: github.ref == 'refs/heads/main' | |
with: | |
prerelease: true | |
name: nightly | |
tag_name: nightly | |
files: | | |
mahendrapaipuri-dashboardreporter-app-nightly.zip | |
mahendrapaipuri-dashboardreporter-app-nightly.zip.sha1 | |
fail_on_unmatched_files: true | |
body: | | |
# Latest Build Complete! :rocket: | |
For the public download links of these build artifacts, please see: | |
<https://github.com/mahendrapaipuri/grafana-dashboard-reporter-app/releases/tag/nightly> |