Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠ°ΠΉΡΠΎΠ²Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Ρ ΡΠ΅Π»ΡΠΌΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ npx firebase-tools deploy --only hosting
ΠΈΠ»ΠΈ npx firebase-tools deploy --only hosting:bbbb
ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ. ΠΠΎ Π΅ΡΠ»ΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π½ΠΎΠ²ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ GitHub, ΠΎΠ½ΠΎ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΡΡΠΎΠΊΠ΅:
/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"
. Π£Π²ΠΈΠ΄Π΅ΡΡ Π½ΠΈΠΆΠ΅:
.firebaserc:
{
"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"
]
}
}
}
}
firebase.json
{
"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": {...}
}
firebase-ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ: . npx firebase-tools --version
-> 8.14.0
ΠΠ»Π°ΡΡΠΎΡΠΌΠ°: OSX, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠ°Π· GitHub Actions ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
Π‘ΠΌ. Π²ΡΡΠ΅.
Π‘ΠΌ. Π²ΡΡΠ΅. ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ hosting:channel :deploy
ΠΠ½ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π΅Ρ
{
"status": "error",
"error": "Hosting configs should only include either \"site\" or \"target\", not both."
}
(Π€Π»Π°Π³ --debug
Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠΌΠ° Π² ΠΆΡΡΠ½Π°Π» HTTP Π²ΠΏΠ΅ΡΠ΅Π΄ΠΈ, Π½ΠΎ ΡΡΠΎ Π²ΡΠ΅ 200 Ρ.)
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΎΡΡΠ΅Ρ. Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, ΠΈ Ρ Π²ΡΠΏΡΡΡ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΡΠ΅Π΅.
Π― ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠ°Π½Π°Π», Π° ΠΏΡΠΎΡΡΠΎ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Ρ firebase --only hosting:
firebase deploy --only hosting:$CI_COMMIT_REF_SLUG -m "Tag $TAG Pipeline $CI_PIPELINE_ID, build $CI_BUILD_ID" --non-interactive
@ Mistic92, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΎΡΠΊΡΠΎΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ Π²ΡΠΏΡΡΠΊ Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΈ ΡΡΠ°ΠΏΠ°ΠΌΠΈ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΎΡΡΠ΅Ρ. Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, ΠΈ Ρ Π²ΡΠΏΡΡΡ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΡΠ΅Π΅.