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. If your codebase is less than 50,000 lines of code, it won’t impact you. If your project is larger, you will need to specify the license key with this action. Check our licensing page for more information.

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 Streamlining Incremental Code Analysis with GitHub Actions for a more refined use-case.