mirror of
https://github.com/grafana/grafana.git
synced 2024-11-23 09:26:43 -06:00
b8aaf85fdc
chore: only run Levitate against the main branch
164 lines
4.5 KiB
YAML
164 lines
4.5 KiB
YAML
# Only runs if anything under the packages/ directory changes.
|
|
# (Otherwise detect-breaking-changes-build-skip.yml takes over)
|
|
|
|
name: Levitate / Detect breaking changes
|
|
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- 'packages/**'
|
|
branches:
|
|
- 'main'
|
|
|
|
jobs:
|
|
buildPR:
|
|
name: Build PR
|
|
runs-on: ubuntu-latest
|
|
defaults:
|
|
run:
|
|
working-directory: './pr'
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
path: './pr'
|
|
- uses: actions/setup-node@v3.5.1
|
|
with:
|
|
node-version: 16.16.0
|
|
|
|
- name: Get yarn cache directory path
|
|
id: yarn-cache-dir-path
|
|
run: echo "dir=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT
|
|
|
|
- name: Restore yarn cache
|
|
uses: actions/cache@v3.0.11
|
|
id: yarn-cache
|
|
with:
|
|
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
|
|
key: yarn-cache-folder-${{ hashFiles('**/yarn.lock', '.yarnrc.yml') }}
|
|
restore-keys: |
|
|
yarn-cache-folder-
|
|
|
|
- name: Install dependencies
|
|
run: yarn install --immutable
|
|
|
|
- name: Build packages
|
|
run: yarn packages:build
|
|
|
|
- name: Pack packages
|
|
run: yarn packages:pack --out ./%s.tgz
|
|
|
|
- name: Zip built tarballed packages
|
|
run: zip -r ./pr_built_packages.zip ./packages/**/*.tgz
|
|
|
|
- name: Upload build output as artifact
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: buildPr
|
|
path: './pr/pr_built_packages.zip'
|
|
|
|
buildBase:
|
|
name: Build Base
|
|
runs-on: ubuntu-latest
|
|
defaults:
|
|
run:
|
|
working-directory: './base'
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
path: './base'
|
|
ref: ${{ github.event.pull_request.base.ref }}
|
|
|
|
- uses: actions/setup-node@v3.5.1
|
|
with:
|
|
node-version: 16.16.0
|
|
|
|
- name: Get yarn cache directory path
|
|
id: yarn-cache-dir-path
|
|
run: echo "dir=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT
|
|
|
|
- name: Restore yarn cache
|
|
uses: actions/cache@v3.0.11
|
|
id: yarn-cache
|
|
with:
|
|
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
|
|
key: yarn-cache-folder-${{ hashFiles('**/yarn.lock', '.yarnrc.yml') }}
|
|
restore-keys: |
|
|
yarn-cache-folder-
|
|
|
|
- name: Install dependencies
|
|
run: yarn install --immutable
|
|
|
|
- name: Build packages
|
|
run: yarn packages:build
|
|
|
|
- name: Pack packages
|
|
run: yarn packages:pack --out ./%s.tgz
|
|
|
|
- name: Zip built tarballed packages
|
|
run: zip -r ./base_built_packages.zip ./packages/**/*.tgz
|
|
|
|
- name: Upload build output as artifact
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: buildBase
|
|
path: './base/base_built_packages.zip'
|
|
|
|
Detect:
|
|
name: Detect breaking changes
|
|
runs-on: ubuntu-latest
|
|
needs: ['buildPR', 'buildBase']
|
|
env:
|
|
GITHUB_STEP_NUMBER: 8
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Get built packages from pr
|
|
uses: actions/download-artifact@v3
|
|
with:
|
|
name: buildPr
|
|
|
|
- name: Get built packages from base
|
|
uses: actions/download-artifact@v3
|
|
with:
|
|
name: buildBase
|
|
|
|
- name: Unzip artifact from pr
|
|
run: unzip -j pr_built_packages.zip -d ./pr && rm pr_built_packages.zip
|
|
|
|
- name: Unzip artifact from base
|
|
run: unzip -j base_built_packages.zip -d ./base && rm base_built_packages.zip
|
|
|
|
- name: Get link for the Github Action job
|
|
id: job
|
|
uses: actions/github-script@v6
|
|
with:
|
|
script: |
|
|
const name = 'Detect breaking changes';
|
|
const script = require('./.github/workflows/scripts/pr-get-job-link.js')
|
|
await script({name, github, context, core})
|
|
|
|
- name: Detect breaking changes
|
|
id: breaking-changes
|
|
run: ./scripts/check-breaking-changes.sh
|
|
env:
|
|
FORCE_COLOR: 3
|
|
GITHUB_JOB_LINK: ${{ steps.job.outputs.link }}
|
|
|
|
- name: Persisting the check output
|
|
run: |
|
|
mkdir -p ./levitate
|
|
echo "{ \"exit_code\": ${{ steps.breaking-changes.outputs.is_breaking }}, \"message\": \"${{ steps.breaking-changes.outputs.message }}\", \"job_link\": \"${{ steps.job.outputs.link }}#step:${GITHUB_STEP_NUMBER}:1\", \"pr_number\": \"${{ github.event.pull_request.number }}\" }" > ./levitate/result.json
|
|
|
|
- name: Upload check output as artifact
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: levitate
|
|
path: levitate/
|
|
|
|
- name: Exit
|
|
run: exit ${{ steps.breaking-changes.outputs.is_breaking }}
|
|
shell: bash
|