Add robi and quebi binary prefixes per IEC 80000-13:2025 #24
This file contains hidden or 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: Unitify CI Pipeline | |
| on: | |
| pull_request: | |
| branches: [main] | |
| workflow_dispatch: | |
| inputs: | |
| configuration: | |
| type: choice | |
| description: The build configuration to use in the deploy stage. | |
| required: true | |
| default: Release | |
| options: | |
| - Debug | |
| - Release | |
| permissions: | |
| contents: read | |
| jobs: | |
| init: | |
| name: initialize | |
| runs-on: ubuntu-24.04 | |
| outputs: | |
| run-privileged-jobs: ${{ steps.vars.outputs.run-privileged-jobs }} | |
| strong-name-key-filename: ${{ steps.vars.outputs.strong-name-key-filename }} | |
| build-switches: ${{ steps.vars.outputs.build-switches }} | |
| steps: | |
| - id: vars | |
| name: calculate workflow variables | |
| shell: bash | |
| run: | | |
| if [[ "${{ github.event_name }}" == "pull_request" && "${{ github.event.pull_request.head.repo.full_name }}" != "${{ github.repository }}" ]]; then | |
| echo "run-privileged-jobs=false" >> "$GITHUB_OUTPUT" | |
| echo "strong-name-key-filename=" >> "$GITHUB_OUTPUT" | |
| echo "build-switches=-p:SkipSignAssembly=true" >> "$GITHUB_OUTPUT" | |
| else | |
| echo "run-privileged-jobs=true" >> "$GITHUB_OUTPUT" | |
| echo "strong-name-key-filename=unitify.snk" >> "$GITHUB_OUTPUT" | |
| echo "build-switches=" >> "$GITHUB_OUTPUT" | |
| fi | |
| build: | |
| name: call-build | |
| needs: [init] | |
| strategy: | |
| matrix: | |
| arch: [X64, ARM64] | |
| configuration: [Debug, Release] | |
| uses: codebeltnet/jobs-dotnet-build/.github/workflows/default.yml@v3 | |
| with: | |
| configuration: ${{ matrix.configuration }} | |
| strong-name-key-filename: ${{ needs.init.outputs.strong-name-key-filename }} | |
| build-switches: ${{ needs.init.outputs.build-switches }} | |
| runs-on: ${{ matrix.arch == 'ARM64' && 'ubuntu-24.04-arm' || 'ubuntu-24.04' }} | |
| upload-build-artifact-name: build-${{ matrix.configuration }}-${{ matrix.arch }} | |
| secrets: inherit | |
| pack: | |
| name: call-pack | |
| needs: [build] | |
| strategy: | |
| matrix: | |
| configuration: [Debug, Release] | |
| uses: codebeltnet/jobs-dotnet-pack/.github/workflows/default.yml@v3 | |
| with: | |
| configuration: ${{ matrix.configuration }} | |
| version: ${{ needs.build.outputs.version }} | |
| download-build-artifact-pattern: build-${{ matrix.configuration }}-X64 | |
| test_linux: | |
| name: call-test-linux | |
| needs: [build] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| arch: [X64, ARM64] | |
| configuration: [Debug, Release] | |
| uses: codebeltnet/jobs-dotnet-test/.github/workflows/default.yml@v3 | |
| with: | |
| runs-on: ${{ matrix.arch == 'ARM64' && 'ubuntu-24.04-arm' || 'ubuntu-24.04' }} | |
| configuration: ${{ matrix.configuration }} | |
| build-switches: -p:SkipSignAssembly=true | |
| build: true # we need to build due to xUnitv3 | |
| restore: true | |
| download-pattern: build-${{ matrix.configuration }}-${{ matrix.arch }} | |
| test_windows: | |
| name: call-test-windows | |
| needs: [build] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| arch: [X64, ARM64] | |
| configuration: [Debug, Release] | |
| uses: codebeltnet/jobs-dotnet-test/.github/workflows/default.yml@v3 | |
| with: | |
| runs-on: ${{ matrix.arch == 'ARM64' && 'windows-11-arm' || 'windows-2025' }} | |
| configuration: ${{ matrix.configuration }} | |
| build-switches: -p:SkipSignAssembly=true | |
| build: true # we need to build due to xUnitv3 | |
| restore: true | |
| download-pattern: build-${{ matrix.configuration }}-${{ matrix.arch }} | |
| sonarcloud: | |
| if: ${{ needs.init.outputs.run-privileged-jobs == 'true' }} | |
| name: call-sonarcloud | |
| needs: [init, build, test_linux, test_windows] | |
| uses: codebeltnet/jobs-sonarcloud/.github/workflows/default.yml@v3 | |
| with: | |
| organization: geekle | |
| projectKey: unitify | |
| version: ${{ needs.build.outputs.version }} | |
| secrets: inherit | |
| codecov: | |
| if: ${{ needs.init.outputs.run-privileged-jobs == 'true' }} | |
| name: call-codecov | |
| needs: [init, build, test_linux, test_windows] | |
| uses: codebeltnet/jobs-codecov/.github/workflows/default.yml@v1 | |
| with: | |
| repository: codebeltnet/unitify | |
| secrets: inherit | |
| codeql: | |
| if: ${{ needs.init.outputs.run-privileged-jobs == 'true' }} | |
| name: call-codeql | |
| needs: [init, build, test_linux, test_windows] | |
| uses: codebeltnet/jobs-codeql/.github/workflows/default.yml@v3 | |
| permissions: | |
| security-events: write | |
| deploy: | |
| if: github.event_name != 'pull_request' | |
| name: call-nuget | |
| needs: [build, pack, test_linux, test_windows, sonarcloud, codecov, codeql] | |
| uses: codebeltnet/jobs-nuget-push/.github/workflows/default.yml@v2 | |
| with: | |
| version: ${{ needs.build.outputs.version }} | |
| environment: Production | |
| configuration: ${{ inputs.configuration == '' && 'Release' || inputs.configuration }} | |
| permissions: | |
| contents: write | |
| packages: write | |
| secrets: inherit |