diff options
Diffstat (limited to 'docs/content/en/hosting-and-deployment/hosting-on-firebase.md')
-rw-r--r-- | docs/content/en/hosting-and-deployment/hosting-on-firebase.md | 54 |
1 files changed, 42 insertions, 12 deletions
diff --git a/docs/content/en/hosting-and-deployment/hosting-on-firebase.md b/docs/content/en/hosting-and-deployment/hosting-on-firebase.md index 3a4039f90..fe6cca1e1 100644 --- a/docs/content/en/hosting-and-deployment/hosting-on-firebase.md +++ b/docs/content/en/hosting-and-deployment/hosting-on-firebase.md @@ -4,7 +4,6 @@ linktitle: Host on Firebase description: You can use Firebase's free tier to host your static website; this also gives you access to Firebase's NOSQL API. date: 2017-03-12 publishdate: 2017-03-12 -lastmod: 2017-03-15 categories: [hosting and deployment] keywords: [hosting,firebase] authors: [Michel Racic] @@ -14,7 +13,6 @@ menu: weight: 20 weight: 20 sections_weight: 20 -draft: false toc: true aliases: [] --- @@ -28,21 +26,23 @@ aliases: [] Go to the [Firebase console][console] and create a new project (unless you already have a project). You will need to globally install `firebase-tools` (node.js): -``` +```txt npm install -g firebase-tools ``` Log in to Firebase (setup on your local machine) using `firebase login`, which opens a browser where you can select your account. Use `firebase logout` in case you are already logged in but to the wrong account. -``` +```txt firebase login ``` + In the root of your Hugo project, initialize the Firebase project with the `firebase init` command: -``` +```txt firebase init ``` + From here: 1. Choose Hosting in the feature question @@ -51,24 +51,54 @@ From here: 4. Accept the default for the publish directory, which is `public` 5. Choose "No" in the question if you are deploying a single-page app -## Deploy +## Using Firebase & Github CI/CD -To deploy your Hugo site, execute the `firebase deploy` command, and your site will be up in no time: +In new versions of Firebase, some other questions apply: + +6. Set up automatic builds and deploys with GitHub? + +Here you will be redirected to login in your GitHub account to get permissions. Confirm. + +7. For which GitHub repository would you like to set up a GitHub workflow? (format: user/repository) + +Include the repository you will use in the format above (Account/Repo) +Firebase script with retrive credentials, create a service account you can later manage in yout github settings. + +8. Set up the workflow to run a build script before every deploy? + +Here is your oportunity to include some commands before you run the deploy. + +9. Set up automatic deployment to your site's live channel when a PR is merged? + +You can let in the default option (main) + +After that Firebase has been set in your project with CI/CD. After that run: ``` hugo && firebase deploy ``` -## CI Setup +With this you will have the app initialized manualy. After that you can manage and fix your github workflow from: https://github.com/your-account/yout-repo/actions -You can generate a deploy token using +Don't forget to update your static pages before push! + +## Manual Deploy +To deploy your Hugo site, execute the `firebase deploy` command, and your site will be up in no time: +```txt +hugo && firebase deploy ``` + +## CI Setup (Other tools) + +You can generate a deploy token using + +```txt firebase login:ci ``` -You can also set up your CI (e.g., with [Wercker][]) and add the token to a private variable like `$FIREBASE_DEPLOY_TOKEN`. +You can also set up your CI and add the token to a private variable like `$FIREBASE_DEPLOY_TOKEN`. {{% note %}} This is a private secret and it should not appear in a public repository. Make sure you understand your chosen CI and that it's not visible to others. @@ -76,7 +106,7 @@ This is a private secret and it should not appear in a public repository. Make s You can then add a step in your build to do the deployment using the token: -``` +```txt firebase deploy --token $FIREBASE_DEPLOY_TOKEN ``` @@ -84,6 +114,6 @@ firebase deploy --token $FIREBASE_DEPLOY_TOKEN * [Firebase CLI Reference](https://firebase.google.com/docs/cli/#administrative_commands) -[console]: https://console.firebase.google.com +[console]: https://console.firebase.google.com/ [Quick Start]: /getting-started/quick-start/ [signup]: https://console.firebase.google.com/ |