рдореЗрд░реЗ рдкрд╛рд╕ рд▓рдХреНрд╖реНрдп рдХреЗ рд╕рд╛рде рдПрдХ рдорд▓реНрдЯреАрд╕рд╛рдЗрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИред npx firebase-tools deploy --only hosting
рдпрд╛ npx firebase-tools deploy --only hosting:bbbb
рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдореИрдВ рдирдИ рдЧрд┐рдЯрд╣рдм рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рд▓рд╛рдЗрди рдкрд░ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ:
/usr/local/bin/npx firebase-tools hosting:channel:deploy pr22-blah --expires 30d --project blah-dev --json
рдПрдХ рд╣реА рдЪреАрдЬрд╝ рдХреЛ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЪрд▓рд╛рдирд╛ рдЙрд╕реА рддрд░рд╣ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред рддреНрд░реБрдЯрд┐ рд╣реИ:
$ npx firebase-tools hosting:channel:deploy pr22-blah --only bbb --expires 30d --project blah-dev --json
{
"status": "error",
"error": "Hosting configs should only include either \"site\" or \"target\", not both."
}
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореИрдВрдиреЗ рд╡рд╣рд╛рдВ рдЬрд┐рд╕ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ рд╡рд╣ --only bbb
рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдЖрджреЗрд╢ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдпрд╛ рдЙрд╕рдХреЗ рдмрд┐рдирд╛ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред
рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореЗрд░рд╛ firebase.json
"site"
рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╕реВрдЪреАрдмрджреНрдз рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдиреАрдЪреЗ рджреЗрдЦреЗрдВ:
рдлрд╛рдпрд░рдмреЗрд╕рдЖрд░рд╕реА:
{
"projects": {
"default": "blah-dev",
"dev": "blah-dev",
"prod": "blah-io"
},
"targets": {
"blah-io": {
"hosting": {
"aaa": [
"blah-aaa"
],
"boilerplate": [
"blah-boilerplate"
],
"bbb": [
"blah-bingo"
]
}
},
"blah-dev": {
"hosting": {
"aaa": [
"blah-aaa-dev"
],
"boilerplate": [
"blah-boilerplate-dev"
],
"bbb": [
"blah-bbb-dev"
]
}
}
}
}
рдлрд╛рдпрд░рдмреЗрд╕.рдЬреЗрд╕рди
{
"firestore": {...},
"database": {...},
"functions": {...},
"hosting": [
{
"target": "aaa",
"public": "packages/aaa/build",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
},
{
"target": "boilerplate",
"public": "packages/boilerplate/build",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
},
{
"target": "bbb",
"public": "packages/bbb/build",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
}
],
"emulators": {...}
}
рдлрд╛рдпрд░рдмреЗрд╕-рдЯреВрд▓реНрд╕: . npx firebase-tools --version
-> 8.14.0
рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо: OSX, рд▓реЗрдХрд┐рди GitHub рдХреНрд░рд┐рдпрд╛рдПрдБ рднреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЫрд╡рд┐
рдКрдкрд░ рджреЗрдЦреЛред
рдКрдкрд░ рджреЗрдЦреЛред рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдЪрд▓рд╛рдПрдБ
рдпрд╣ рддреИрдирд╛рдд рдХрд░рддрд╛ рд╣реИ
{
"status": "error",
"error": "Hosting configs should only include either \"site\" or \"target\", not both."
}
( --debug
рдзреНрд╡рдЬ рд╕рд╛рдордиреЗ HTTP рд▓реЙрдЧрд┐рдВрдЧ рд╢реЛрд░ рдХрд╛ рдПрдХ рдмрд╣реБрдд рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рднреА 200 рд╣реИред)
рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рдПрдХ рдлрд┐рдХреНрд╕ рдЖрдЙрдЯ рдорд┐рд▓ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ ASAP рд╕реЗ рдмрд╛рд╣рд░ рдХрд░ рджреВрдВрдЧрд╛ред
рдЪреИрдирд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╕рдордп рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИ рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдлрд╝рд╛рдпрд░рдмреЗрд╕ рдкрд░рд┐рдирд┐рдпреЛрдЬрди --only рд╣реЛрд╕реНрдЯрд┐рдВрдЧ:
firebase deploy --only hosting:$CI_COMMIT_REF_SLUG -m "Tag $TAG Pipeline $CI_PIPELINE_ID, build $CI_BUILD_ID" --non-interactive
@ Mistic92 рдХреГрдкрдпрд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдФрд░ рдкреБрдирд░реБрддреНрдкрд╛рджрди рдЪрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓реЗрдВред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рдПрдХ рдлрд┐рдХреНрд╕ рдЖрдЙрдЯ рдорд┐рд▓ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ ASAP рд╕реЗ рдмрд╛рд╣рд░ рдХрд░ рджреВрдВрдЧрд╛ред