forked from ontoportal/ontoportal_web_ui
-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Feature: add local api tests CI (#384)
* remove old file and config no more used * add bash scripts to run and stop an ontoportal api using docker images * add test UI against a remote api CI * add a docker build CI with a new Dockerfile * add running UI test against a local API CI * add bash script to run ontoportal web ui in dev mode or run tests * update docker compose file to not build locally and use the publisher image * update ontoportal script to add help and rewrite it using functions * allow hosts in development environment * make testportal and ontoportal have the same theme * update ontoportal script to add reset-cache option * update bioportal config sample to include ui_theme and homepage & footer configs * add a mysql healthcheck to the docker compose * fix linkfield component using a no more existent config variable
- Loading branch information
1 parent
deaf94f
commit a0f9586
Showing
24 changed files
with
627 additions
and
927 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,137 +1,43 @@ | ||
# Default values are optimized for production to avoid having to configure | ||
# much in production. | ||
# | ||
# However it should be easy to get going in development too. If you see an | ||
# uncommented option that means it's either mandatory to set or it's being | ||
# overwritten in development to make your life easier. | ||
##################### UI configuration #################### | ||
RAILS_ENV=development | ||
SITE=Testportal | ||
ORG=LIRMM | ||
ORG_URL=http://www.lirmm.fr | ||
|
||
# Enable BuildKit by default: | ||
# https://docs.docker.com/develop/develop-images/build_enhancements | ||
export DOCKER_BUILDKIT=1 | ||
UI_URL=http://localhost:3000 | ||
API_URL=http://localhost:9393 | ||
API_KEY= | ||
|
||
# Rather than use the directory name, let's control the name of the project. | ||
export COMPOSE_PROJECT_NAME=ontoportal-docker | ||
UI_THEME=ontoportal | ||
|
||
# In development we want all services to start but in production you don't | ||
# need the asset watchers to run since assets get built into the image. | ||
# | ||
# You can even choose not to run postgres and redis in prod if you plan to use | ||
# managed cloud services. Everything "just works", even optional depends_on! | ||
#export COMPOSE_PROFILES=postgres,redis,web,worker,cable | ||
export COMPOSE_PROFILES=db,cache,assets,web | ||
BIOMIXER_URL= | ||
BIOMIXER_APIKEY= | ||
|
||
# If you're running native Linux and your uid:gid isn't 1000:1000 you can set | ||
# these to match your values before you build your image. You can check what | ||
# your uid:gid is by running `id` from your terminal. | ||
#export UID=1000 | ||
#export GID=1000 | ||
ANNOTATOR_URL= | ||
|
||
# You can generate a more secure secret by running: ./run rails secret | ||
export SECRET_KEY_BASE=insecure_key_for_dev | ||
FAIRNESS_DISABLED=false | ||
FAIRNESS_URL= | ||
|
||
# Which environment is running? These should be "development" or "production". | ||
#export RAILS_ENV=production | ||
#export NODE_ENV=production | ||
export RAILS_ENV=development | ||
export NODE_ENV=development | ||
NCBO_ANNOTATORPLUS_ENABLED=false | ||
NCBO_ANNOTATOR_URL= | ||
NCBO_API_KEY= | ||
|
||
# The bind port for puma. | ||
# | ||
# Be warned that if you change this value you'll need to change 8000 in both | ||
# your Dockerfile and in a few spots in docker-compose.yml due to the nature of | ||
# how this value can be set (Docker Compose doesn't support nested ENV vars). | ||
#export PORT=8000 | ||
SUPPORT_EMAIL=[email protected] | ||
RELEASE_VERSION="OntoPortal Appliance 3.0.1" | ||
|
||
# How many workers and threads should your app use? WEB_CONCURRENCY defaults | ||
# to the server's CPU count * 2. That is a good starting point. In development | ||
# it's a good idea to use 1 to avoid race conditions when debugging. | ||
#export WEB_CONCURRENCY= | ||
#export RAILS_MAX_THREADS=5 | ||
#export WEB_CONCURRENCY=1 | ||
#export RAILS_MAX_THREADS=1 | ||
ANALYTICS_ID= | ||
USE_RECAPTCHA=false | ||
#################### Buidling the API for running tests #################### | ||
## An ontology that will be imported in the starting of the API server | ||
STARTER_ONTOLOGY=STY | ||
## API key of a remote API used to download the starter ontology | ||
OP_API_KEY=8b5b7825-538d-40e0-9e9e-5ab9274a9aeb | ||
## API url of the remote API used to download the starter ontology | ||
OP_API_URL="https://data.bioontology.org" | ||
|
||
# You'll always want to set POSTGRES_USER and POSTGRES_PASSWORD since the | ||
# postgres Docker image uses them for its default database user and password. | ||
export POSTGRES_USER=hello | ||
export POSTGRES_PASSWORD=password | ||
#export POSTGRES_DB=hello | ||
#export POSTGRES_HOST=postgres | ||
#export POSTGRES_PORT=5432 | ||
## Image repositroy from which the ontoportal api will be built | ||
API_IMAGE_REPOSITORY=agroportal | ||
## Image tag/version from which the ontoportal api will be built | ||
API_IMAGE_TAG=stage | ||
|
||
# What's your full Redis connection URL? This will be used for caching, Sidekiq, | ||
# and Action Cable. You can always split them up later. | ||
#export REDIS_URL=redis://redis:6379/1 | ||
|
||
# The bind port for puma but for Action Cable. | ||
# | ||
# Be warned that if you change this value you'll need to change 28080 in a few | ||
# spots in docker-compose.yml due to the nature of how this value can be set | ||
# (Docker Compose doesn't support nested ENV vars). | ||
#export CABLE_PORT=28080 | ||
|
||
# The Action Cable address that will be accessible over HTTP. In production | ||
# you would typically have this reverse proxied to a sub-domain with nginx, in | ||
# which case you would set something like: ws://cable.example.com | ||
# | ||
# This is one case where it defaults to a development value because it's not | ||
# possible for me to know what domain name you'll be using. | ||
#export ACTION_CABLE_FRONTEND_URL=ws://localhost:28080 | ||
|
||
# Comma separated list of RegExp origins to allow connections from for Action | ||
# Cable. The values will be converted into a proper RegExp, so omit the / /. | ||
# | ||
# Examples: | ||
# http:\/\/localhost* | ||
# http:\/\/example.*,https:\/\/example.* | ||
#export ACTION_CABLE_ALLOWED_REQUEST_ORIGINS=http:\/\/localhost* | ||
|
||
# If this is set then Rails will serve files from public/ in production. You | ||
# probably don't want this behavior unless you're testing prod mode locally, | ||
# because nginx would typically serve static files. | ||
#export RAILS_SERVE_STATIC_FILES= | ||
|
||
# Should Docker restart your containers if they go down in unexpected ways? | ||
#export DOCKER_RESTART_POLICY=unless-stopped | ||
export DOCKER_RESTART_POLICY=no | ||
|
||
# What health check test command do you want to run? In development, having it | ||
# curl your web server will result in a lot of log spam, so setting it to | ||
# /bin/true is an easy way to make the health check do basically nothing. | ||
#export DOCKER_WEB_HEALTHCHECK_TEST=curl localhost:8000/up | ||
export DOCKER_WEB_HEALTHCHECK_TEST=/bin/true | ||
|
||
# What ip:port should be published back to the Docker host for the app server? | ||
# If you're using Docker Toolbox or a custom VM you can't use 127.0.0.1. This | ||
# is being overwritten in dev to be compatible with more dev environments. | ||
# | ||
# If you have a port conflict because something else is using 8000 then you | ||
# can either stop that process or change 8000 to be something else. | ||
# | ||
# Use the default in production to avoid having puma directly accessible to | ||
# the internet since it'll very likely be behind nginx or a load balancer. | ||
#export DOCKER_WEB_PORT_FORWARD=127.0.0.1:8000 | ||
export DOCKER_WEB_PORT_FORWARD=127.0.0.1:3000 | ||
|
||
# This is the same as above except for Action Cable. | ||
#export DOCKER_CABLE_PORT_FORWARD=127.0.0.1:28080 | ||
export DOCKER_CABLE_PORT_FORWARD=28080 | ||
|
||
# What volume path should be used? In dev we want to volume mount everything | ||
# so that we can develop our code without rebuilding our Docker images. | ||
#export DOCKER_WEB_VOLUME=./public:/app/public | ||
|
||
|
||
export DOCKER_WEB_VOLUME=.:/app | ||
|
||
# What CPU and memory constraints will be added to your services? When left at | ||
# 0 they will happily use as much as needed. | ||
# export DOCKER_POSTGRES_CPUS=0 | ||
# export DOCKER_POSTGRES_MEMORY=0 | ||
# export DOCKER_REDIS_CPUS=0 | ||
# export DOCKER_REDIS_MEMORY=0 | ||
# export DOCKER_WEB_CPUS=0 | ||
# export DOCKER_WEB_MEMORY=0 | ||
# export DOCKER_WORKER_CPUS=0 | ||
# export DOCKER_WORKER_MEMORY=0 | ||
# export DOCKER_CABLE_CPUS=0 | ||
# export DOCKER_CABLE_MEMORY=0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
name: Docker branch Images build | ||
|
||
on: | ||
push: | ||
branches: | ||
- development | ||
- stage | ||
- test | ||
release: | ||
types: [ published ] | ||
|
||
jobs: | ||
push_to_registry: | ||
name: Push Docker branch image to Docker Hub | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Check out the 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: Log in to Docker Hub | ||
uses: docker/login-action@v2 | ||
with: | ||
username: ${{ secrets.DOCKERHUB_USERNAME }} | ||
password: ${{ secrets.DOCKERHUB_TOKEN }} | ||
|
||
- name: Extract metadata (tags, labels) for Docker | ||
id: meta | ||
uses: docker/metadata-action@v4 | ||
with: | ||
images: agroportal/ontoportal_web_ui | ||
|
||
- name: Build and push Docker image | ||
uses: docker/build-push-action@v4 | ||
with: | ||
context: . | ||
platforms: linux/amd64,linux/arm64 | ||
build-args: | | ||
RUBY_VERSION=2.7 | ||
push: true | ||
tags: ${{ steps.meta.outputs.tags }} | ||
labels: ${{ steps.meta.outputs.labels }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
# This workflow uses actions that are not certified by GitHub. | ||
# They are provided by a third-party and are governed by | ||
# separate terms of service, privacy policy, and support | ||
# documentation. | ||
# This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake | ||
# For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby | ||
name: "Run remote API tests CI" | ||
|
||
on: | ||
push: | ||
pull_request_target: | ||
types: [ opened, reopened ] | ||
env: | ||
API_URL: ${{ secrets.API_URL }} | ||
API_KEY: ${{ secrets.API_KEY }} | ||
BIOMIXER_URL: ${{ secrets.BIOMIXER_URL }} | ||
FAIRNESS_URL: ${{ secrets.FAIRNESS_URL }} | ||
ANNOTATOR_URL: ${{ secrets.ANNOTATOR_URL }} | ||
DB_HOST: 127.0.0.1 | ||
jobs: | ||
test: | ||
runs-on: ubuntu-latest | ||
services: | ||
mysql: | ||
image: mysql:8.0 | ||
ports: | ||
- "3306:3306" | ||
env: | ||
MYSQL_ROOT_PASSWORD: root | ||
memcached: | ||
image: memcached:1.6 | ||
ports: | ||
- 11211:11211 | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v3 | ||
# Add or replace dependency steps here | ||
- name: Install Ruby and gems | ||
uses: ruby/setup-ruby@v1 | ||
with: | ||
ruby-version: 2.7.8 | ||
bundler-cache: true | ||
# Add or replace database setup steps here | ||
- name: set up config file | ||
run: cp config/database.yml.sample config/database.yml | ||
- name: Set up database schema | ||
run: RAILS_ENV=test bin/rails db:setup | ||
- name: Set up yarn | ||
run: yarn install | ||
# Add or replace test runners here | ||
- name: Run tests | ||
run: RAILS_ENV=test bin/rails test test/controllers/* -v |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.