[hotfix] Android example using still the old timer API. #547
Workflow file for this run
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: Validation | |
| # This workflow will run on every push on every branch. It will not be triggered on pull requests. | |
| # - At some point it will be cut down to only be triggered on source code changes and branches with specific naming. | |
| # | |
| on: | |
| push: | |
| branches: '*' | |
| # This workflow supports the following additional CI tags: | |
| # - [skip ci] - skips the whole workflow (available, github implicit) | |
| # - (wip) [asan] - Runs all unit tests with an adress sanitizer enabled. (wip) | |
| # - (wip) [benchmark] - Runs benchmarks additionally to unit tests. (wip) | |
| # - (wip) [snapshot] - Deploys a 'Develop' build to conan on the 'snapshot' channel. (wip) | |
| # - [all_configs] - Runs all checks on all configurations. (wip, some limitations apply) | |
| # - [parallel] - Runs every configuration on a separate job. (wip, some limitations apply) | |
| jobs: | |
| setup_workflow: | |
| name: Setup workflow | |
| runs-on: ubuntu-latest | |
| outputs: | |
| tags: ${{ steps.extract_ci_tags.outputs.tags }} | |
| build_configs: ${{ steps.select_build_configs.outputs.build_configs }} | |
| steps: | |
| - id: load_event_payload | |
| name: Load event payload | |
| run: | | |
| PAYLOAD_CONTENT=$(cat $GITHUB_EVENT_PATH) | |
| PAYLOAD_CONTENT="${PAYLOAD_CONTENT//'%'/'%25'}" | |
| PAYLOAD_CONTENT="${PAYLOAD_CONTENT//$'\n'/' '}" | |
| PAYLOAD_CONTENT="${PAYLOAD_CONTENT//$'\r'/' '}" | |
| echo "::set-output name=payload::$PAYLOAD_CONTENT" | |
| - id: validate_commit_messages | |
| name: Potentially unsafe commit messages | |
| if: ${{ contains(join(fromJSON(steps.load_event_payload.outputs.payload).commits.*.message, ';'), '`') == true }} | |
| run: | | |
| echo "::error::Commit messages contain potentially unsafe characters. Failing build process..." | |
| exit 1 | |
| - id: extract_ci_tags | |
| name: Extract CI tags from commits | |
| run: | | |
| COMMIT_MESSAGES="${{ join(fromJSON(steps.load_event_payload.outputs.payload).commits.*.message, ';') }}" | |
| COMMIT_TAGS=$(echo "${COMMIT_MESSAGES@Q}" | grep -oP '\[.*?\]' | sed 's/\[\(.*\)\]/\1/' | tr '\n' ' ') | |
| echo "::set-output name=tags::$COMMIT_TAGS" | |
| - id: select_build_configs | |
| name: Select build configs | |
| run: | | |
| if [[ "${{ steps.extract_ci_tags.outputs.tags }}" == *"all_configs"* ]]; then | |
| echo "::set-output name=build_configs::[\"Debug\",\"Develop\",\"Profile\",\"Release\"]" | |
| else | |
| echo "::set-output name=build_configs::[\"Debug\",\"Develop\"]" | |
| fi | |
| ## Build using a single job for all configurations | |
| # - Allows to cut down on build time as it's does not need to recreate the workspace for each configuration. | |
| # - This is the default way of validating builds | |
| call_build_single_windows: | |
| name: 'Build (Windows)' | |
| needs: setup_workflow | |
| if: ${{ contains(needs.setup_workflow.outputs.tags, 'parallel') == false }} | |
| uses: iceshard-engine/engine/.github/workflows/cw_build_single.yaml@master | |
| with: | |
| host: windows-latest | |
| configs: ${{ needs.setup_workflow.outputs.build_configs }} | |
| platform: 'windows' | |
| architecture: x64 | |
| cache_revision: v4 | |
| call_build_single_linux: | |
| name: 'Build (Linux)' | |
| needs: setup_workflow | |
| if: ${{ contains(needs.setup_workflow.outputs.tags, 'parallel') == false }} | |
| uses: iceshard-engine/engine/.github/workflows/cw_build_single.yaml@master | |
| with: | |
| host: ubuntu-22.04 | |
| configs: ${{ needs.setup_workflow.outputs.build_configs }} | |
| platform: 'linux' | |
| architecture: x64 | |
| cache_revision: v4 | |
| ## Build using a separate job for each configuration | |
| # - Should be used when it's necessary to check every configuration build process on clean workspaces. | |
| # - Can be triggered using the [parallel] tag in a commit message body. | |
| call_build_parallel_windows: | |
| name: 'Build (Windows), Parallel' | |
| needs: setup_workflow | |
| if: ${{ contains(needs.setup_workflow.outputs.tags, 'parallel') == true }} | |
| uses: iceshard-engine/engine/.github/workflows/cw_build_parallel.yaml@master | |
| with: | |
| host: windows-latest | |
| configs: ${{ needs.setup_workflow.outputs.build_configs }} | |
| platform: 'windows' | |
| architecture: x64 | |
| cache_revision: v4 | |
| call_build_parallel_linux: | |
| name: 'Build (Linux), Parallel' | |
| needs: setup_workflow | |
| if: ${{ contains(needs.setup_workflow.outputs.tags, 'parallel') == true }} | |
| uses: iceshard-engine/engine/.github/workflows/cw_build_parallel.yaml@master | |
| with: | |
| host: ubuntu-22.04 | |
| configs: ${{ needs.setup_workflow.outputs.build_configs }} | |
| platform: 'linux' | |
| architecture: x64 | |
| cache_revision: v4 |