-
Notifications
You must be signed in to change notification settings - Fork 155
156 lines (145 loc) · 5.55 KB
/
pa_one_command_runner_test.yml
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
name: PA One command runner test
run-name: ${{ inputs.test_name }} on ${{ inputs.tag }} for build ${{ inputs.build_id }}
on:
workflow_call:
inputs:
dataset_id:
description: Attribution Dataset id
required: true
type: string
input_path:
description: S3 path to synthetic attribution data
required: false
default: https://fbpcs-github-e2e.s3.us-west-2.amazonaws.com/attribution/inputs/partner_e2e_input.csv
type: string
expected_result_path:
description: S3 path to expected results from synthetic run
required: false
default: https://fbpcs-github-e2e.s3.us-west-2.amazonaws.com/attribution/results/partner_expected_result_last_click.json
type: string
build_id:
description: The build id
required: false
default: 'test build'
type: string
test_name:
description: The name of the type of tests that are being run
required: false
default: 'PA E2E Tests'
type: string
tag:
description: Version tag to use for the PL/PA Binaries
required: false
default: rc
type: string
coordinator_tag:
description: The image tag for the coordinator image that we should use.
required: false
default: rc
type: string
tracker_hash:
description: '[Internal usage] Used for tracking workflow job status within Meta infra'
required: false
type: string
workflow_dispatch:
inputs:
dataset_id:
description: Attribution Dataset id
required: true
default: '1127612294482487'
input_path:
description: S3 path to synthetic attribution data
required: true
default: https://fbpcs-github-e2e.s3.us-west-2.amazonaws.com/attribution/inputs/partner_e2e_input.csv
expected_result_path:
description: S3 path to expected results from synthetic run
required: true
default: https://fbpcs-github-e2e.s3.us-west-2.amazonaws.com/attribution/results/partner_expected_result_last_click.json
build_id:
description: The build id
required: false
default: 'test build'
test_name:
description: The name of the type of tests that are being run
default: 'PA E2E Tests'
type: 'choice'
options:
- PA E2E Tests
- Multi-key PA E2E Tests
tag:
description: Version tag to use
required: true
default: rc
coordinator_tag:
description: The image tag for the coordinator image that we should use.
required: false
default: rc
type: string
tracker_hash:
description: '[Internal usage] Used for tracking workflow job status within Meta infra'
required: false
type: string
env:
FBPCS_CONTAINER_REPO_URL: public.ecr.aws/t7b1w5a4
FBPCS_IMAGE_NAME: pc-coordinator-prod
FBPCS_GRAPH_API_TOKEN: ${{ secrets.FBPCS_GRAPH_API_TOKEN }}
jobs:
### Private Attribution E2E tests
pa_test:
name: Private Attribution E2E Tests
runs-on: ubuntu-latest
timeout-minutes: 90
permissions:
id-token: write
contents: read
steps:
- uses: actions/checkout@v3
- name: Print Tracker Hash
run: echo ${{ inputs.tracker_hash}}
- name: Get AWS Session name
id: aws_session_name
run: |
echo session_name=$(echo ${{ inputs.test_name }}-${{ inputs.build_id }} | tr " " "-") >> $GITHUB_OUTPUT
- name: Set AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
role-to-assume: ${{ secrets.AWS_E2E_TEST_ROLE_TO_ASSUME }}
aws-region: us-west-2
role-duration-seconds: 5400
role-session-name: ${{ steps.aws_session_name.outputs.session_name }}
- name: One Command runner
run: |
./fbpcs/scripts/run_fbpcs.sh run_attribution \
--dataset_id=${{ inputs.dataset_id }} \
--attribution_rule="last_click_1d" \
--input_path=${{ inputs.input_path }} \
--aggregation_type="measurement" \
--concurrency=4 \
--num_files_per_mpc_container=4 \
--config=./fbpcs/tests/github/config_one_command_runner_test.yml \
--timestamp="1646870400" \
--k_anonymity_threshold=0 \
-- \
--version=${{ inputs.tag }} \
--image_version=${{ inputs.coordinator_tag }} \
--docker_env=AWS_ACCESS_KEY_ID \
--docker_env=AWS_SECRET_ACCESS_KEY \
--docker_env=AWS_SESSION_TOKEN \
--docker_env=AWS_DEFAULT_REGION
- name: Validate Results
# instances are named after ent ids, so we are going to look for filenames that consist of only numbers and then run validation on them
# the fbpcs_instances directory is where instances are written to (feature of run_fbpcs.sh)
# the config.yml specifies that /fbpcs_instances is the instance repo, which is the source of the "/{}"
run: |
find fbpcs_instances -regex 'fbpcs_instances/[0-9]+' | xargs -I {} ./fbpcs/scripts/run_fbpcs.sh \
validate \
"/{}" \
--config=./fbpcs/tests/github/config_one_command_runner_test.yml \
--expected_result_path=${{ inputs.expected_result_path }} \
-- \
--version=${{ inputs.tag }} \
--image_version=${{ inputs.coordinator_tag }} \
--docker_env=AWS_ACCESS_KEY_ID \
--docker_env=AWS_SECRET_ACCESS_KEY \
--docker_env=AWS_SESSION_TOKEN \
--docker_env=AWS_DEFAULT_REGION