12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- name: Build (ya make)
- description: Build targets
- inputs:
- build_target:
- required: false
- description: "build target"
- build_preset:
- required: true
- default: "relwithdebinfo"
- description: "relwithdebinfo, release-asan, release-tsan"
- bazel_remote_uri:
- required: false
- description: "bazel-remote endpoint"
- bazel_remote_username:
- required: false
- description: "bazel-remote username"
- bazel_remote_password:
- required: false
- description: "bazel-remote password"
- link_threads:
- required: false
- default: "8"
- description: "link threads count"
- runs:
- using: "composite"
- steps:
- - name: Init
- id: init
- shell: bash
- run: |
- echo "SHELLOPTS=xtrace" >> $GITHUB_ENV
- export TMP_DIR=$(pwd)/tmp_build
- echo "TMP_DIR=$TMP_DIR" >> $GITHUB_ENV
- rm -rf $TMP_DIR && mkdir $TMP_DIR
-
- - name: build
- shell: bash
- run: |
- extra_params=()
- if [ ! -z "${{ inputs.build_target }}" ]; then
- extra_params+=(--target="${{ inputs.build_target }}")
- fi
-
- if [ ! -z "${{ inputs.bazel_remote_uri }}" ]; then
- extra_params+=(--bazel-remote-store)
- extra_params+=(--bazel-remote-base-uri "${{ inputs.bazel_remote_uri }}")
- fi
-
- if [ ! -z "${{ inputs.bazel_remote_username }}" ]; then
- extra_params+=(--bazel-remote-username "${{ inputs.bazel_remote_username }}")
- extra_params+=(--bazel-remote-password "${{ inputs.bazel_remote_password }}")
- extra_params+=(--bazel-remote-put --dist-cache-evict-bins --add-result .o)
- fi
-
- case "${{ inputs.build_preset }}" in
- relwithdebinfo)
- build_type=relwithdebinfo
- ;;
- release-asan)
- build_type=release
- extra_params+=(--sanitize="address")
- extra_params+=(-DSKIP_JUNK -DUSE_EAT_MY_DATA -DDEBUGINFO_LINES_ONLY)
- ;;
- release-tsan)
- build_type=release
- extra_params+=(--sanitize="thread")
- extra_params+=(-DSKIP_JUNK -DUSE_EAT_MY_DATA -DDEBUGINFO_LINES_ONLY)
- ;;
- *)
- echo "Invalid preset: ${{ inputs.build_preset }}"
- exit 1
- ;;
- esac
-
- ./ya make --build "${build_type}" --force-build-depends -D'BUILD_LANGUAGES=CPP PY3' -T --stat \
- --log-file "$TMP_DIR/ya_log.txt" --evlog-file "$TMP_DIR/ya_evlog.jsonl" \
- --dump-graph --dump-graph-to-file "$TMP_DIR/ya_graph.json" \
- --cache-size 512G --link-threads "${{ inputs.link_threads }}" \
- "${extra_params[@]}"
- - name: sync logs to s3
- if: always()
- shell: bash
- run: |
- echo "::group::s3-sync"
- s3cmd sync --acl-private --no-progress --stats --no-check-md5 "$TMP_DIR/" "$S3_BUCKET_PATH/build_logs/"
- echo "::endgroup::"
- - name: show free space
- if: always()
- shell: bash
- run: df -h
|