blob: 799b1c7a71e0b4e2a9f5404b7be4bf0ccd20f5f4 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
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
debug)
build_type=debug
;;
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)
;;
release-msan)
build_type=release
extra_params+=(--sanitize="memory")
extra_params+=(-DSKIP_JUNK -DUSE_EAT_MY_DATA -DDEBUGINFO_LINES_ONLY)
;;
*)
echo "Invalid preset: ${{ inputs.build_preset }}"
exit 1
;;
esac
./ya make -k --build "${build_type}" --force-build-depends -D'BUILD_LANGUAGES=CPP PY3 PY2 GO' -T --stat \
--log-file "$TMP_DIR/ya_log.txt" --evlog-file "$TMP_DIR/ya_evlog.jsonl" \
--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
|