Skip to content

chore: Create a GitHub Actions based CI Pipeline #386

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jan 15, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Continuous Integration

on: [push, pull_request]

jobs:
build:

runs-on: ubuntu-latest
strategy:
matrix:
python: [3.5, 3.6, 3.7, pypy3]

steps:
- uses: actions/checkout@v1
- name: Set up Python ${{ matrix.python }}
uses: actions/setup-python@v1
with:
python-version: ${{ matrix.python }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Lint with pylint
if: matrix.python == '3.7'
run: ./lint.sh all
- name: Test with pytest
if: success() || failure()
run: pytest
- name: Set up Node.js 10
uses: actions/setup-node@v1
with:
node-version: 10.x
- name: Run integration tests against emulator
run: |
npm install -g firebase-tools
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should use https://firebase.tools instead so that we can drop the setup-node action and build faster, but I think this is fine for now as well. Also, have we considered caching ~/.cache/firebase which contains the emulator and (later) the standalone CLI?

Copy link
Contributor Author

@hiranya911 hiranya911 Jan 15, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Been experimenting with this, but firebase.tools absolutely refuses to work in the GitHub Actions environment (filed a bug for the CLI for this). There are bunch of workarounds I can use to get this to work -- which involves pulling the CLI binary for Linux explicitly. But I'd rather do all that in a separate PR.

firebase emulators:exec --only database --project fake-project-id 'pytest integration/test_db.py'
10 changes: 0 additions & 10 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,6 @@
language: python
python:
- "3.4"
- "3.5"
- "3.6"
- "3.7"
- "pypy3.5"

jobs:
include:
- name: "Lint"
python: "3.7"
script: ./lint.sh all

before_install:
- nvm install 8 && npm install -g firebase-tools
Expand Down