Setup a CI pipeline

1. Obtain Personal access token and add it to GitHub secrets

  • Create a new personal access token for your GitHub repository. You may do it by going to “Settings” -> “Developer settings” page of your GitHub account. Select “Personal access token” tab and create a new token.

  • Add this token to your repository’s secrets. Go to “Settings” within your repository page and select “Secrets.” Add a new secret by pasting the access token in the Value field and giving a meaning name (e.g., PAT).

2: Add your Designite key to secrets (optional)

If you have Designite’s professional (or academic) license key, add the key to your GitHub’s repository secrets. Let us call it D_KEY.

3.A: Add a GitHub Actions workflow file

Tip

You may use a GitHub action described in step 3.B especially if there are no customization needed.

This is the last and very crucial step. Create a folder .github on your root directory of the project and create workflows folder inside the .github folder. Create a workflow file (say actions.yml) in the newly created “workflows” folder. The contents of the action.yml file depends upon your project language and tasks.

Sample actions.yml file for a Java project

name: CI

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Build with Maven
        run: mvn clean install
      - name: Download DesigniteJava
        run: wget "https://www.designite-tools.com/assets/DesigniteJava.jar"
      - name: Analyze project with DesigniteJava
        run: |
          java -jar DesigniteJava.jar -ci -repo $GITHUB_REPOSITORY -pat ${{ secrets.PAT }} -k ${{ secrets.D_KEY }} -o designite_output

3.B Use DesigniteJava Action

It is an alternative (and simpler) step to 3.A.

Create a folder .github on your root directory of the project and create workflows folder inside the .github folder. Create a workflow file (say actions.yml) in the newly created workflows folder. The contents of the action.yml file depend upon your project language and tasks. A sample action file is provided below.

name: CI

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - name: DesigniteJava_action
      uses: DesigniteTools/DJAction@v1.0.0
      with:
          PAT: ${{ secrets.PAT }}

Tip

Check out our post on How to analyze code quality incrementally for a more refined use-case.