ℹ️ Ci (#10)

* fix error in README

* check github.ref value

* check github.ref value

* fix typo

* install deps

* track config files

* final versioning
This commit is contained in:
Ruidy 2020-05-17 09:31:54 +02:00 committed by GitHub
parent 9242d284c7
commit 75c9888493
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 121 additions and 11 deletions

5
.firebaserc Normal file
View file

@ -0,0 +1,5 @@
{
"projects": {
"default": "devprojects-4749c"
}
}

View file

@ -26,15 +26,18 @@ jobs:
start: yarn start start: yarn start
wait-on: 'http://localhost:3000' wait-on: 'http://localhost:3000'
release: release:
if: ${{ github.ref == 'master' }}
needs: test
name: Release name: Release
if: ${{ github.ref == 'refs/heads/master' }}
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Build - name: Build
run: yarn build run: yarn build
- name: Install Firebase CLI tools - name: Deploy to Firebase
run: yarn global add firebase-tools uses: w9jds/firebase-action@master
- name: Deploy with:
run: firebase deploy --token ${{ secrets.FIREBASE_TOKEN }} args: deploy
env:
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}

6
.gitignore vendored
View file

@ -28,8 +28,4 @@ yarn-debug.log*
yarn-error.log* yarn-error.log*
.env .env
.firebase .firebase
firebase.json
firestore.indexes.json
*rules
.firebaserc

23
firebase.json Normal file
View file

@ -0,0 +1,23 @@
{
"firestore": {
"rules": "firestore.rules",
"indexes": "firestore.indexes.json"
},
"hosting": {
"public": "build",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
},
"storage": {
"rules": "storage.rules"
}
}

75
firestore.rules Normal file
View file

@ -0,0 +1,75 @@
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// Restaurants:
// - Authenticated user can read
// - Authenticated user can create/update (for demo)
// - Validate updates
// - Deletes are not allowed
match /restaurants/{restaurantId} {
allow read, create: if request.auth != null;
allow update: if request.auth != null
&& request.resource.data.name == resource.data.name
allow delete: if false;
// Ratings:
// - Authenticated user can read
// - Authenticated user can create if userId matches
// - Deletes and updates are not allowed
match /ratings/{ratingId} {
allow read: if request.auth != null;
allow create: if request.auth != null
&& request.resource.data.userId == request.auth.uid;
allow update, delete: if false;
}
}
// MealPlannerUsers:
// - Anyone can read
// - Authenticated users can create and edit their account
// - Deletes are not allowed
match /mealPlannerUsers/{userID} {
allow read: if true;
allow create, update, write: if true;
allow delete: if false;
// Favs:
// - Anyone can read
// - Authenticated users can create and edit their account
// - Deletes are not allowed
match /favs/{favID} {
allow read, create, update, write: if true;
allow delete: if false;
}
}
// Messages:
// - Anyone can read.
// - Authenticated users can add and edit messages.
// - Validation: Check name is same as auth token and text length below 300 char or that imageUrl is a URL.
// - Deletes are not allowed.
match /messages/{messageId} {
allow read;
allow create, update: if request.auth != null
&& request.resource.data.name == request.auth.token.name
&& (request.resource.data.text is string
&& request.resource.data.text.size() <= 300
|| request.resource.data.imageUrl is string
&& request.resource.data.imageUrl.matches('https?://.*'));
allow delete: if false;
}
// FcmTokens:
// - anyone can save its token
// - access is forbidden
match /fcmTokens/{tokenID} {
allow write;
allow read: if false;
}
// Users: DevBook app
match /users/{userID} {
allow read,write :if true;
}
}
}

8
storage.rules Normal file
View file

@ -0,0 +1,8 @@
rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write: if request.auth!=null;
}
}
}