Code Quality
SonarCloud: sonarcloud.io
SonarCloud is invented to check Code Quality & Code Security. Free for open source projects.
Show:
- Bugs
- Vulnerabilities
- Hotspots Reviewed
- Code Smells
- Duplications
It also gives tips on how to eliminate a warning it finds:
Pull requests are automatically checked by SonarCloud:
You can add the badges to Github README and don't have to leave Github to look at the stats and by clicking on it we will be taken to the right place.
Deploy Previews:
Automatic deploy preview from pull request: docs.netlify.com/site-deploys/deploy-previews
Github actions
Build docker image and push to dockerhub with github actions
# This is a basic workflow to help you get started with Actions
name: CI
# Controls when the workflow will run
on:
# Triggers the workflow on push or pull request events but only for the main branch
push:
branches: [ main ]
pull_request:
branches: [ main ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
push_to_registry:
name: Push Docker image to Docker Hub
runs-on: ubuntu-latest
steps:
- name: Check out the repo
uses: actions/checkout@v2
- name: Log in to Docker Hub
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38
with:
images: nodeimageprocessing/linode-docker-api
- name: Build and push Docker image
uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
Run command on your server via ssh:
#...
update_ssh_linode:
name: Telling Linode Server to Update,
needs: "push_to_registry"
runs-on: ubuntu-latest
steps:
- name: executing remote ssh commands using password
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
password: ${{ secrets.PASSWORD }}
port: ${{ secrets.PORT }}
script: bash pull-docker-api.sh