Merge pull request #99 from specklesystems/dogukan/labeling-releases #15
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: build_powerbi | |
on: | |
push: | |
branches: ["dev"] | |
tags: ["v3.*"] # Manual delivery on every 3.x tag | |
jobs: | |
build-connector: | |
runs-on: windows-latest | |
outputs: | |
semver: ${{ steps.set-version.outputs.semver }} | |
file-version: ${{ steps.set-info-version.outputs.file-version }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Install GitVersion | |
uses: gittools/actions/gitversion/[email protected] | |
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/[email protected] | |
- name: Set connector internal version | |
working-directory: src/powerbi-data-connector | |
run: | | |
$version = ${{steps.gitversion.outputs.AssemblySemVer}} | |
(Get-Content ./Speckle.pq).replace('[Version = "3.0.0"]', '[Version = "'+$version+'"]') | Set-Content ./Speckle.pq | |
- name: Setup MSBuild | |
uses: microsoft/setup-msbuild@v2 | |
- name: Build Data Connector | |
working-directory: src/powerbi-data-connector | |
run: | | |
msbuild Speckle.proj /restore /consoleloggerparameters:NoSummary /property:GenerateFullPaths=true | |
- name: Create PQX file | |
run: | | |
./tools/MakePQX/MakePQX.exe pack -mz src/powerbi-data-connector/bin/Speckle.mez -t src/powerbi-data-connector/bin/Speckle.pqx | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: powerbi-connector | |
path: src/powerbi-data-connector/bin/Speckle.pqx | |
retention-days: 5 | |
- 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/[email protected] | |
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/[email protected] | |
- run: npm ci | |
working-directory: src/powerbi-visual | |
- run: npm version ${{steps.gitversion.outputs.semVer}} --allow-same-version | |
working-directory: src/powerbi-visual | |
- run: npm run build | |
working-directory: src/powerbi-visual | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: powerbi-visual | |
path: src/powerbi-visual/dist/*.pbiviz | |
deploy-installers: | |
runs-on: ubuntu-latest | |
needs: | |
- build-connector | |
- build-visual | |
env: | |
IS_TAG_BUILD: ${{ github.ref_type == 'tag' }} | |
steps: | |
- name: download artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
name: powerbi-connector | |
path: artifacts/ | |
- name: download artifacts visual | |
uses: actions/download-artifact@v4 | |
with: | |
name: powerbi-visual | |
path: artifacts/ | |
- name: Zip artifacts | |
run: | | |
cd artifacts && zip -r ../powerbi.zip . | |
- name: upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: output-${{needs.build-connector.outputs.semver}} | |
path: powerbi.zip | |
- name: 🔫 Trigger Build Installers | |
uses: ALEEF02/[email protected] | |
with: | |
workflow: Build PowerBI | |
repo: specklesystems/connector-installers | |
token: ${{ secrets.CONNECTORS_GH_TOKEN }} | |
inputs: '{ "run_id": "${{ github.run_id }}", "semver": "${{ needs.build-connector.outputs.semver }}", "file_version": "${{ needs.build-connector.outputs.file-version }}", "public_release": ${{ env.IS_TAG_BUILD }} }' | |
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 |