Added New GitHub actions #31
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
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: Install dependencies | |
# run: npm install | |
# - name: Install dependencies (using npm ci) | |
# run: npm ci | |
# - name: Check types | |
# run: npm run typecheck | |
# - name: Lint | |
# run: npm run lint | |
# - name: Unit tests | |
# run: npm run test:ci | |
# - name: Build frontend | |
# run: npm run build | |
- 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@v3 | |
with: | |
go-version: '1.21.4' | |
- name: Install Mage | |
run: | | |
go install github.com/magefile/mage@latest | |
export PATH="${HOME}/go/bin:${PATH}" | |
env: | |
GO111MODULE: "on" | |
GOPATH: "${HOME}/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 |