How to automatically deploy Angular app to Firebase Hosting using Github Actions


Want to deploy your Angular application to Firebase with GitHub Actions while you sleep?

This complete guide will show you how to do it. In less than 5 minutes.

Automation is cool. 😎

And everyone that agrees is just as coooooool. 😼

deploy

Years ago when I was a real rooky I used to manually deploy my code. I would push my changes to GitHub. Then I would SSH into the production server, pull the latest changes, create the new builds and deploy the new code. Was I ever a noob! It's a wonder that the top of my head didn't cave in from sheer emptiness.

That's why CI tools are so dandy.

So, how do we use free tools like Firebase Hosting and Github Actions to automatically build and deploy our Angular applications for us?

How do we make-em harmonize like a glorious choir?

And automate the chore of deploying to those handy-dandy robots?

In this guide, I'm going to assume you have an existing Angular project that's already uploaded and stored in GitHub.

Ready?

Here's how to do set up automatic deploy for your Angular app. In less than 5 minutes.

1. Create the project in Firebase console

If you've already created a new Firebase project then you can skip this step.

Otherwise, you'll need to log into the Firebase console and create a new project.

firebase%20add%20project

Next, give our project a name.

Maybe mickey-mouse? In case you're feeling uninspired.

firebase%20project%20name

You'll be asked if you want to enable Google Analytics. You can set this to enabled or disabled. Doesn't matter.

firebase%20google%20analytics

If you decide to use Google Analytics, you'll be prompted to choose your Google Analytics account.

firebase%20choose%20account

And finally, click "Create Project" and wait while it creates your new Firebase project.

2. Install the Firebase CLI

The next step is to install the Firebase CLI.

npm install -g firebase-tools

3. Use the Firebase CLI to configure deployment

Now that we've got our tools installed, we'll need to configure GitHub Actions.

We'll begin with this command to log into our Firebase account.

firebase login

And then this one to create the GitHub action.

firebase init hosting:github

This will generate a file inside the .github/workflows/ directory.

But we'll have to customize it a bit.

Here's an example of what it should look like instead.

name: Deploy to Firebase Hosting
on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

  workflow_dispatch:
jobs:
  build_and_deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Install Packages
        run: npm install
      - run: npm run build
      - uses: FirebaseExtended/action-hosting-deploy@v0
        with:
          repoToken: '${{ secrets.GITHUB_TOKEN }}'
          firebaseServiceAccount: '${{ secrets.FIREBASE_SERVICE_ACCOUNT_MY_ANGULAR_PROJECT_64AAF }}'
          projectId: my-angular-project-64aaf
          channelId: live

You're ready to deploy! 👏 👏 👏

Make sure you commit the new file and push it to the GitHub repository. And then got to the Actions tab of your GitHub project and watch it deploy.

github%20actions

Conclusion

Questions? Or comments?

Please comment below or contact me here.

signature

Angular Consultant