The Back-End
Revit
Advanced
CI/CD

Continuous Integration and Continuous Deployment (CI/CD) in Revit

Creating a Continuous Integration (CI) and Continuous Deployment (CD) workflow using GitHub Actions to automate the process of building your Revit add-in and creating an Inno Setup installer is a powerful way to streamline development and distribution. Below is a step-by-step guide to setting up this workflow:

Note: Ensure you have your Revit add-in project hosted on GitHub before proceeding.

Step 1: Create a GitHub Actions Workflow

  1. In your GitHub repository, create a new directory named .github/workflows.

  2. Inside the .github/workflows directory, create a YAML file (e.g., build-and-deploy.yml) to define your workflow.

Step 2: Define the Workflow

In the YAML file, define your CI/CD workflow. Below is an example workflow for building your Revit add-in and creating the Inno Setup installer:

name: Build and Deploy
 
on:
  push:
    branches:
      - main # Change to your main branch name
 
jobs:
  build:
    runs-on: windows-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
 
      - name: Set up .NET
        uses: actions/setup-dotnet@v1
        with:
          dotnet-version: '5.x' # Change to your desired .NET version
 
      - name: Restore NuGet packages
        run: dotnet restore
 
      - name: Build project
        run: dotnet build --configuration Release
 
      - name: Create installer
        run: |
          # Download and install Inno Setup
          Invoke-WebRequest https://www.jrsoftware.org/download/isetup.exe -OutFile isetup.exe
          Start-Process -Wait -FilePath isetup.exe
 
          # Build the installer using Inno Setup script
          iscc /Q /OOutputDirectory YourAppName.iss
 
      - name: Upload Installer
        uses: actions/upload-artifact@v2
        with:
          name: installer
          path: OutputDirectory # Change to your output directory

This workflow does the following:

  • Sets up a Windows runner environment.
  • Checks out your code from the repository.
  • Installs .NET.
  • Restores NuGet packages, builds your project in Release mode, and creates the Inno Setup installer.
  • Uploads the installer as a build artifact.

Step 3: Customize Workflow

  • Replace main in the on.push.branches section with the branch you want to trigger the workflow on.

  • Modify the dotnet-version and other settings as needed.

  • Adjust the paths and filenames according to your project's structure and naming conventions.

Step 4: Commit and Push

Commit the YAML file to your repository and push it to GitHub. The workflow will automatically trigger when you push changes to the specified branch.

Step 5: Access the Installer

Once the workflow completes successfully, you can access the Inno Setup installer in the "Artifacts" section of your GitHub Actions workflow run. Users can download and install the add-in from there.

With this CI/CD workflow in place, you have automated the process of building your Revit add-in and generating the Inno Setup installer, making it easier to distribute your add-in to Revit users.