diff --git a/.circleci/build-installer.bat b/.circleci/build-installer.bat deleted file mode 100644 index 91331a9..0000000 --- a/.circleci/build-installer.bat +++ /dev/null @@ -1,3 +0,0 @@ -for /f "tokens=1 delims=-" %%i in ("%CIRCLE_TAG%") do set "TAG=%%i.%WORKFLOW_NUM%" -for /f "tokens=1 delims=/" %%j in ("%CIRCLE_TAG%") do set "SEMVER=%%j" -tools\InnoSetup\ISCC.exe tools\powerbi.iss /Sbyparam=$p /DINFO_VERSION=%TAG% /DVERSION=%SEMVER% %* \ No newline at end of file diff --git a/.circleci/config.yml b/.circleci/config.yml index 6bf5f96..8f25a98 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,171 +1,16 @@ -# Use the latest 2.1 version of CircleCI pipeline process engine. -# See: https://circleci.com/docs/2.0/configuration-reference version: 2.1 -orbs: - win: circleci/windows@5.0 - -commands: - setup_digicert: - description: Set up Digicert Keylocker certificate for code-signing - steps: - - run: - name: "Digicert Signing Manager Setup" - command: | - cd C:\ - curl.exe -X GET https://one.digicert.com/signingmanager/api-ui/v1/releases/smtools-windows-x64.msi/download -H "x-api-key:$env:SM_API_KEY" -o smtools-windows-x64.msi - msiexec.exe /i smtools-windows-x64.msi /quiet /qn | Wait-Process - - run: - name: Setup Digicert ONE Client Cert - command: | - cd C:\ - echo $env:SM_CLIENT_CERT_FILE_B64 > certificate.txt - certutil -decode certificate.txt certificate.p12 - - run: - name: Sync Certs - command: | - & $env:SSM\smksp_cert_sync.exe - +# Define the jobs we want to run for this project jobs: - build-visual: - docker: - - image: cimg/node:18.20.3 - steps: - - checkout - - run: node --version - - run: - name: "npm install" - command: "npm i" - working_directory: src/powerbi-visual - - run: - name: Set version - command: | - npm version ${CIRCLE_TAG:-2.0.0} --allow-same-version - working_directory: src/powerbi-visual - - run: - name: "npm run build" - command: "npm run build" - working_directory: src/powerbi-visual - - store_artifacts: - path: dist/*.pbiviz - - persist_to_workspace: - root: ./ - paths: - - src/powerbi-visual/dist/*.pbiviz - - build-connector: - executor: - name: win/default - shell: powershell.exe - environment: - SSM: 'C:\Program Files\DigiCert\DigiCert One Signing Manager Tools' - steps: - - checkout - - run: - name: "Set connector internal version" - command: | - $env:VERSION = if([string]::IsNullOrEmpty($env:CIRCLE_TAG)) { "2.0.0" } else { $env:CIRCLE_TAG } - (Get-Content ./Speckle.pq).replace('[Version = "2.0.0"]', '[Version = "'+$($env:VERSION)+'"]') | Set-Content ./Speckle.pq - working_directory: src/powerbi-data-connector - - run: - name: "Build Data Connector" - command: "msbuild Speckle.proj /restore /consoleloggerparameters:NoSummary /property:GenerateFullPaths=true" - working_directory: src/powerbi-data-connector - - run: - name: Create PQX file - command: .\tools\MakePQX\MakePQX.exe pack -mz src/powerbi-data-connector/bin/Speckle.mez -t src/powerbi-data-connector/bin/Speckle.pqx - - persist_to_workspace: - root: ./ - paths: - - src/powerbi-data-connector/bin/Speckle.pqx - - build-installer: - executor: - name: win/default - shell: powershell.exe - environment: - SSM: 'C:\Program Files\DigiCert\DigiCert One Signing Manager Tools' - steps: - - checkout - - attach_workspace: - at: ./ - - unless: # Build installers unsigned on non-tagged builds - condition: << pipeline.git.tag >> - steps: - - run: - name: Build Installer - shell: cmd.exe #does not work in powershell - environment: - WORKFLOW_NUM: << pipeline.number >> - CIRCLE_TAG: 2.0.0 - command: .circleci\build-installer.bat - - when: # Setup certificates and build installers signed for tagged builds - condition: << pipeline.git.tag >> - steps: - - setup_digicert - - run: - name: Build Installer - shell: cmd.exe #does not work in powershell - environment: - WORKFLOW_NUM: << pipeline.number >> - command: .circleci\build-installer.bat /DSIGN_INSTALLER /DCODE_SIGNING_CERT_FINGERPRINT=%SM_CODE_SIGNING_CERT_SHA1_HASH% - - store_artifacts: - path: ./installer - - persist_to_workspace: - root: ./ - paths: - - installer/*.exe - - deploy-connector-to-feed: - docker: - - image: mcr.microsoft.com/dotnet/sdk:6.0 - steps: - - attach_workspace: - at: ./ - - run: - name: Install Manager Feed CLI - command: dotnet tool install --global Speckle.Manager.Feed - - run: - name: Upload new version - command: | - TAG=$(if [ "${CIRCLE_TAG}" ]; then echo $CIRCLE_TAG; else echo "2.0.0"; fi;) - SEMVER=$(echo "$TAG" | sed -e 's/\/[a-zA-Z-]*//') - VER=$(echo "$SEMVER" | sed -e 's/-.*//') - VERSION=$(echo $VER.$WORKFLOW_NUM) - /root/.dotnet/tools/Speckle.Manager.Feed deploy -s powerbi -v ${SEMVER} -u https://releases.speckle.dev/installers/powerbi/powerbi-${SEMVER}.exe -o Win -a Any -f ./installer/powerbi-${SEMVER}.exe - environment: - WORKFLOW_NUM: << pipeline.number >> - -workflows: build: + docker: + - image: cimg/base:2023.03 + steps: + - run: echo "so long and thanks for all the fish" + +# Orchestrate our job run sequence +workflows: + build_and_test: + when: false jobs: - - build-connector: - context: digicert-keylocker - - build-visual - - build-installer: - context: digicert-keylocker - requires: - - build-connector - - build-visual - deploy: - jobs: - - build-connector: - filters: &deploy_filter - branches: - ignore: /.*/ - tags: - only: /^([0-9]+)\.([0-9]+)\.([0-9]+)(?:-\w{1,10})?$/ - context: digicert-keylocker - - build-visual: - filters: *deploy_filter - - build-installer: - filters: *deploy_filter - context: digicert-keylocker - requires: - - build-connector - - build-visual - - deploy-connector-to-feed: - filters: *deploy_filter - requires: - - build-installer - context: do-spaces-speckle-releases + - build diff --git a/.github/workflows/build_powerbi.yml b/.github/workflows/build_powerbi.yml index ebb3c18..bd99d95 100644 --- a/.github/workflows/build_powerbi.yml +++ b/.github/workflows/build_powerbi.yml @@ -8,32 +8,38 @@ jobs: runs-on: windows-latest outputs: semver: ${{ steps.set-version.outputs.semver }} - file-version: ${{ steps.set-info-version.outputs.file-version }} + file-version: ${{ steps.set-version.outputs.file-version }} env: CertFile: "./speckle.pfx" steps: - name: Checkout code uses: actions/checkout@v4 - with: - fetch-depth: 0 - name: Set up Python 3.10 uses: actions/setup-python@v3 with: python-version: "3.10" - - name: Install GitVersion - uses: gittools/actions/gitversion/setup@v3.0.0 - with: - versionSpec: 6.0.5 # github actions doesnt like 6.1.0 onwards https://github.com/GitTools/actions/blob/main/docs/versions.md + - id: set-version + name: Set version to output + run: | + TAG=${{ github.ref_name }} + if [[ "${{ github.ref }}" != refs/tags/* ]]; then + TAG="v3.0.99.${{ github.run_number }}" + fi + SEMVER="${TAG#v}" + FILE_VERSION=$(echo "$TAG" | sed -E 's/^v([0-9]+\.[0-9]+\.[0-9]+).*/\1/') + FILE_VERSION="$FILE_VERSION.${{ github.run_number }}" - - name: Determine Version - id: gitversion - uses: gittools/actions/gitversion/execute@v3.0.0 + echo "semver=$SEMVER" >> "$GITHUB_OUTPUT" + echo "file-version=$FILE_VERSION" >> "$GITHUB_OUTPUT" + + echo $SEMVER + echo $FILE_VERSION - name: Set connector version run: | - python patch_version.py ${{steps.gitversion.outputs.AssemblySemVer}} + python patch_version.py ${{steps.set-version.outputs.file-version}} - name: Setup MSBuild uses: microsoft/setup-msbuild@v2 @@ -60,37 +66,38 @@ jobs: if-no-files-found: error retention-days: 1 - - id: set-version - name: Set version to output - run: echo "semver=${{steps.gitversion.outputs.semVer}}" >> "$GITHUB_OUTPUT" - shell: bash - - id: set-info-version - name: Set version to output - run: echo "file-version=${{steps.gitversion.outputs.AssemblySemVer}}" >> "$GITHUB_OUTPUT" - shell: bash - build-visual: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - with: - fetch-depth: 0 - uses: actions/setup-node@v4 with: node-version: 20 - - name: Install GitVersion - uses: gittools/actions/gitversion/setup@v3.0.0 - with: - versionSpec: 6.0.5 # github actions doesnt like 6.1.0 onwards https://github.com/GitTools/actions/blob/main/docs/versions.md - - name: Determine Version id: gitversion uses: gittools/actions/gitversion/execute@v3.0.0 + - id: set-version + name: Set version to output + run: | + TAG=${{ github.ref_name }} + if [[ "${{ github.ref }}" != refs/tags/* ]]; then + TAG="v3.0.99.${{ github.run_number }}" + fi + SEMVER="${TAG#v}" + FILE_VERSION=$(echo "$TAG" | sed -E 's/^v([0-9]+\.[0-9]+\.[0-9]+).*/\1/') + FILE_VERSION="$FILE_VERSION.${{ github.run_number }}" + + echo "semver=$SEMVER" >> "$GITHUB_OUTPUT" + echo "file-version=$FILE_VERSION" >> "$GITHUB_OUTPUT" + + echo $SEMVER + echo $FILE_VERSION + - run: npm ci working-directory: src/powerbi-visual - - run: npm version ${{steps.gitversion.outputs.semVer}} --allow-same-version + - run: npm version ${{steps.set-version.outputs.semver}} --allow-same-version working-directory: src/powerbi-visual - run: npm run build working-directory: src/powerbi-visual diff --git a/GitVersion.yml b/GitVersion.yml deleted file mode 100644 index 66b1b9e..0000000 --- a/GitVersion.yml +++ /dev/null @@ -1,11 +0,0 @@ -workflow: GitFlow/v1 -next-version: 3.0.0 -mode: ManualDeployment -branches: - main: - label: rc - develop: - regex: ^dev$ - label: beta - unknown: - increment: None \ No newline at end of file