Skip to content

Add CI Pipeline

Add CI Pipeline #6

Workflow file for this run

name: Test
on:
pull_request:
push:
branches:
- main
- add-ci-pipeline
release:
types:
- published
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Build and export
uses: docker/build-push-action@v5
with:
context: .
tags: glvd:latest
outputs: type=docker,dest=/tmp/glvd.tar
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: glvd
path: /tmp/glvd.tar
test:
runs-on: ubuntu-latest
env:
DATABASE_URL: postgres://user:password@localhost:5432/glvd_test
services:
postgres:
image: postgres
env:
POSTGRES_DB: glvd_test
POSTGRES_USER: user
POSTGRES_PASSWORD: password
ports:
- 5432:5432
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Download artifact
uses: actions/download-artifact@v3
with:
name: glvd
path: /tmp
- name: Load image
run: |
docker load --input /tmp/glvd.tar
- name: Run image
run: |
docker run \
--env RAILS_ENV=test \
--env DATABASE_URL="$DATABASE_URL" \
--network host \
--rm \
${{ steps.build.outputs.imageid }} \
sudo apt update && \
sudo apt install -y ca-certificates python3-pytest python3-pytest-flake8 mypy && \
py.test-3 --flake8 /usr/local/src && \
mypy --show-error-codes --namespace-packages /usr/local/src