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.