| # A CI workflow to run the Dart Code Metrics analyzer (https://dcm.dev). |
| |
| name: Dart Code Metrics |
| |
| on: |
| pull_request_target: |
| # labeled and unlabeled are required along with open to re-run |
| # workflow when the run-dcm-workflow label is added or removed. |
| types: [opened, labeled, unlabeled] |
| branches: |
| - master |
| |
| jobs: |
| dcm: |
| if: contains(github.event.pull_request.labels.*.name, 'run-dcm-workflow') |
| name: Dart Code Metrics |
| runs-on: ubuntu-latest |
| steps: |
| - name: Install DCM |
| run: | |
| sudo apt-get update |
| wget -qO- https://dcm.dev/pgp-key.public | sudo gpg --dearmor -o /usr/share/keyrings/dcm.gpg |
| echo 'deb [signed-by=/usr/share/keyrings/dcm.gpg arch=amd64] https://dcm.dev/debian stable main' | sudo tee /etc/apt/sources.list.d/dart_stable.list |
| sudo apt-get update |
| sudo apt-get install dcm |
| sudo chmod +x /usr/bin/dcm |
| - name: Setup Dart SDK |
| uses: dart-lang/setup-dart@8a4b97ea2017cc079571daec46542f76189836b1 |
| with: |
| sdk: dev |
| - id: checkout |
| name: Checkout repository |
| uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 |
| with: |
| ref: "${{ github.event.pull_request.head.sha }}" |
| - id: dwds_pub_upgrade |
| name: dwds; dart pub upgrade |
| run: dart pub upgrade |
| if: "always() && steps.checkout.conclusion == 'success'" |
| working-directory: dwds |
| - name: Run DCM on DWDS |
| run: dcm analyze --ci-key="${{ secrets.DCM_CI_KEY }}" --email="${{ secrets.DCM_EMAIL }}" lib |
| working-directory: dwds |