# This workflow uses actions that are not certified by GitHub. # They are provided by a third-party and are governed by # separate terms of service, privacy policy, and support # documentation. name: MSBuild on: push: branches: ["main", "develop", "release/*", "alan/*"] # Continuous delivery on every long-lived branch tags: ["v3.*"] # Manual delivery on every 3.x tag permissions: contents: read jobs: build: runs-on: windows-latest outputs: version: ${{ steps.set-version.outputs.version }} file_version: ${{ steps.set-info-version.outputs.file_version }} steps: - uses: actions/checkout@v4 with: path: speckle-cpp-connectors fetch-depth: 0 - uses: actions/checkout@v4 with: repository: r-wessel/ActiveLib path: ActiveLib ref: develop - name: Download zip file run: | New-Item -ItemType Directory -Path "Archicad 27" -Force Invoke-WebRequest -Uri "https://github.com/GRAPHISOFT/archicad-api-devkit/releases/download/27.3001/API.Development.Kit.WIN.27.3001.zip" -OutFile "file.zip" - name: Extract zip file to Archicad 27 folder run: | Add-Type -AssemblyName System.IO.Compression.FileSystem [System.IO.Compression.ZipFile]::ExtractToDirectory("file.zip", "Archicad 27") - name: Add MSBuild to PATH uses: microsoft/setup-msbuild@v2 - name: ⚒️ Run GitVersion working-directory: speckle-cpp-connectors run: ./build.ps1 build-server-version - name: Build working-directory: speckle-cpp-connectors run: ./build.ps1 - uses: actions/upload-artifact@v4 with: name: output-${{ env.GitVersion_FullSemVer }} path: speckle-cpp-connectors/output/*.zip retention-days: 1 - id: set-version name: Set version to output run: echo "version=${{ env.GitVersion_FullSemVer }}" >> "$Env:GITHUB_OUTPUT" - id: set-info-version name: Set file version to output run: echo "file_version=${{ env.GitVersion_AssemblySemVer}}" >> "$Env:GITHUB_OUTPUT" # version will be retrieved from tag? deploy-installers: runs-on: ubuntu-latest needs: build env: IS_TAG_BUILD: ${{ github.ref_type == 'tag' }} IS_RELEASE_BRANCH: true steps: - name: 🔫 Trigger Build Installers uses: ALEEF02/workflow-dispatch@v3.0.0 continue-on-error: true with: workflow: build-cpp-installers repo: specklesystems/connector-installers token: ${{ secrets.CONNECTORS_GH_TOKEN }} inputs: '{ "run_id": "${{ github.run_id }}", "version": "${{ needs.build.outputs.version }}", "file_version": "${{needs.build.outputs.file_version}}", "public_release": ${{ env.IS_TAG_BUILD }}, "store_artifacts": ${{ env.IS_RELEASE_BRANCH }} }' ref: main wait-for-completion: true wait-for-completion-interval: 10s wait-for-completion-timeout: 10m display-workflow-run-url: true display-workflow-run-url-interval: 10s - uses: geekyeggo/delete-artifact@v5 with: name: output-*