Skip to content

Pin version of open api tools image #462

Pin version of open api tools image

Pin version of open api tools image #462

Workflow file for this run

name: Test and build
on:
push:
branches: [ 'master', 'feat/*' ]
pull_request:
branches: [ 'master' ]
env:
go_version: 1.18
node_version: 14
DATABASE_USER: root
DATABASE_PASSWORD: example
DATABASE_HOST: 127.0.0.1
jobs:
openapi-code-generator:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 1
- run: make clean
- run: make openapi-spec
- uses: actions/upload-artifact@v3
with:
name: openapi-files
path: |
assets/openapi
pkg/openapi
if-no-files-found: error
frontend:
needs: openapi-code-generator
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 1
- uses: actions/setup-node@v3
with:
node-version: ${{ env.node_version }}
- uses: actions/download-artifact@v3
with:
name: openapi-files
path: .
- run: make lint-frontend
- run: make frontend
- run: make test-frontend
backend:
needs: openapi-code-generator
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
mongodb_image: ['mongo:4', 'mongo:5']
services:
mongodb:
env:
MONGO_INITDB_ROOT_USERNAME: ${{ env.DATABASE_USER }}
MONGO_INITDB_ROOT_PASSWORD: ${{ env.DATABASE_PASSWORD }}
image: ${{ matrix.mongodb_image }}
ports:
- 27017:27017
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 1
- uses: actions/download-artifact@v3
with:
name: openapi-files
path: .
- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: ${{ env.go_version }}
- name: Test
run: make test
- name: Test
run: make build-linux
- name: Print coverage
run: go tool cover -func cover.out | tail -n 1 | awk '{print $3}'
e2e:
needs: [backend, frontend]
runs-on: ubuntu-latest
services:
mongodb:
env:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
image: 'mongo:5'
ports:
- 27017:27017
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 1
- uses: actions/download-artifact@v3
with:
name: openapi-files
path: .
- uses: actions/setup-node@v3
with:
node-version: ${{ env.node_version }}
- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: ${{ env.go_version }}
- name: Run e2e suite
env:
SPOTIFY_ID: ${{ secrets.SPOTIFY_ID }}
SPOTIFY_SECRET: ${{ secrets.SPOTIFY_SECRET }}
GENIUS_API_TOKEN: ${{ secrets.GENIUS_API_TOKEN }}
run: make test-e2e
- uses: actions/upload-artifact@v3
if: failure()
with:
name: cypress-files
path: |
tests/e2e/screenshots
tests/e2e/videos
docker-image:
needs: e2e
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 1
- name: Build image
uses: docker/build-push-action@v3
with:
push: false
context: .