Celtech/shout-it

View on GitHub
.github/workflows/main.yml

Summary

Maintainability
Test Coverage
name: Main workflow
on:
push:
branches:
- '*'
jobs:
test:
name: Tests & Linting
runs-on: ubuntu-20.04
steps:
- name: Checking out code from the repository
uses: actions/checkout@v3
 
- name: Setting up Node
uses: actions/setup-node@v3
with:
node-version: 18
 
- name: Install dependencies
run: |
yarn install --frozen-lockfile
 
- name: Lint code
run: |
yarn lint
 
- name: Test with Jest
run: |
yarn test
build-app:
name: Build and publish App
runs-on: ubuntu-latest
needs: [ test ]
steps:
- name: Check out GitHub repo
uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASS }}
- name: Build and push
uses: docker/build-push-action@v3
with:
context: .
file: docker/Dockerfile
tags: shoutitbot/app:latest
target: app
push: true
build-args: |
BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')
VCS_REF=$(git rev-parse --short HEAD)
BUILD_VERSION=latest
build-api:
name: Build and publish API
runs-on: ubuntu-latest
needs: [ test ]
steps:
- name: Check out GitHub repo
uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASS }}
# And make it available for builds
- name: Build and push
uses: docker/build-push-action@v3
with:
context: .
file: docker/Dockerfile
tags: shoutitbot/api:latest
target: api
push: true
build-args: |
BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')
VCS_REF=$(git rev-parse --short HEAD)
BUILD_VERSION=latest
app-container-scan:
name: App Container Scan
runs-on: ubuntu-latest
needs: [build-app]
steps:
- uses: azure/container-scan@v0
with:
image-name: shoutitbot/app:latest
api-container-scan:
name: API Container Scan
runs-on: ubuntu-latest
needs: [build-api]
steps:
- uses: azure/container-scan@v0
with:
image-name: shoutitbot/api:latest