Uses Azure API for forecast data (#36) #144
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
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: Run Go unit tests | |
if: steps.check-for-backend.outputs.has-backend == 'true' | |
run: | | |
cd /home/runner/work/Grafana.Plugin.CostManagement/Grafana.Plugin.CostManagement/dfe-azurecostbackend-datasource | |
go test /home/runner/work/Grafana.Plugin.CostManagement/Grafana.Plugin.CostManagement/dfe-azurecostbackend-datasource/pkg/plugin | |
- 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 |