<aside> ⚠️
While these endpoints are stable and in use by our SDK, we highly recommend using one of our other methods if possible. Check Integrating QA Wolf into your CI/CD for more details.
</aside>
This endpoint is for uploading executables, such as mobile apps and browser extensions, that we execute tests against. It is done in two steps:
Once uploaded, you may want to trigger a run against the new executable. Please reference the Deploy Success Webhook page for details on that.
<aside> ⚠️
Only certain file types are allowed: .apk, .aab, .deb, .ipa, .zip
</aside>
The DESTINATION_FILE_PATH should at minimum be the filename and extension, but may also include directories. Reach out to QA Wolf for what this should be set to.
GET <https://app.qawolf.com/api/v0/run-inputs-executables-signed-urls?file=$DESTINATION_FILE_PATH>
Authorization: Bearer $QAWOLF_API_KEY
On success, it responds with this JSON:
{
"fileLocation": "$TEAM_ID/$DESTINATION_FILE_PATH",
"playgroundFileLocation": "$DESTINATION_FILE_PATH",
"signedUrl": "https://..."
}
This requires the signedUrl from the endpoint above.
PUT $SIGNED_URL
How you attach the file to this request varies. The key point is that the file itself is the request body, not part of the form data. Some examples:
curl -X PUT \\
--header "Content-Type:application/octet-stream" \\
--data-binary @some_file.zip \\
$SIGNED_URL
await fetch(SIGNED_URL, {
body: fileBuffer,
headers: { 'content-type': 'application/octet-stream' },
method: 'PUT',
});