From 6927977e05ab74e0f3de722fc573c476db0b1b50 Mon Sep 17 00:00:00 2001 From: Aditya Singh Date: Tue, 9 Jan 2024 17:10:22 +0100 Subject: [PATCH] initial commit --- .github/workflows/ci.yml | 90 +++++++++++++++++++++++++++++++++++ .github/workflows/release.yml | 25 ++++++++++ 2 files changed, 115 insertions(+) create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..a65ef2a --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,90 @@ +name: CI + +on: + push: + branches: + - master + - main + pull_request: + branches: + - master + - main + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Setup Node.js environment + uses: actions/setup-node@v3 + with: + node-version: '20' + cache: 'yarn' + + - name: Install dependencies + run: yarn install --immutable --prefer-offline + + - name: Check types + run: yarn run typecheck + - name: Lint + run: yarn run lint + - name: Unit tests + run: yarn run test:ci + - name: Build frontend + run: yarn run 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@v2 + with: + version: latest + args: coverage + + - name: Build backend + if: steps.check-for-backend.outputs.has-backend == 'true' + uses: magefile/mage-action@v2 + with: + version: latest + args: buildAll + + - 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: yarn 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 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..41d6dad --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,25 @@ +# 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 + +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: $