Skip to content

Commit

Permalink
Update venom tests
Browse files Browse the repository at this point in the history
  • Loading branch information
CristyNel committed Oct 6, 2024
1 parent bb8a63b commit 760de19
Show file tree
Hide file tree
Showing 5 changed files with 173 additions and 164 deletions.
76 changes: 0 additions & 76 deletions .github/workflows/D-comp.yml

This file was deleted.

76 changes: 76 additions & 0 deletions .github/workflows/git_envs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# .github/workflows/git_envs.yml
name: Display Variables

on:
push:
branches:
- main

jobs:
display-vars:
runs-on: ubuntu-latest
environment: CV_project-staging

steps:
- name: Checkout
uses: actions/checkout@v2

- name: Display Environment Variables
env:
API_CONTAINER: ${{ vars.API_CONTAINER }}
API_HOST: ${{ vars.API_HOST }}
API_IMG: ${{ vars.API_IMG }}
API_IP: ${{ vars.API_IP }}
API_PORT: ${{ vars.API_PORT }}
API_SERVICE: ${{ vars.API_SERVICE }}
API_TAG: ${{ vars.API_TAG }}
API_URL: ${{ vars.API_URL }}
BFF_CONTAINER: ${{ vars.BFF_CONTAINER }}
BFF_HOST: ${{ vars.BFF_HOST }}
BFF_IMG: ${{ vars.BFF_IMG }}
BFF_IP: ${{ vars.BFF_IP }}
BFF_PORT: ${{ vars.BFF_PORT }}
BFF_SERVICE: ${{ vars.BFF_SERVICE }}
BFF_TAG: ${{ vars.BFF_TAG }}
CV_NETWORK: ${{ vars.CV_NETWORK }}
MYSQL_ADDR: ${{ vars.MYSQL_ADDR }}
MYSQL_CONTAINER: ${{ vars.MYSQL_CONTAINER }}
MYSQL_DATABASE: ${{ vars.MYSQL_DATABASE }}
MYSQL_HOST: ${{ vars.MYSQL_HOST }}
MYSQL_IMG: ${{ vars.MYSQL_IMG }}
MYSQL_IP: ${{ vars.MYSQL_IP }}
MYSQL_LOCAL_IP: ${{ vars.MYSQL_LOCAL_IP }}
run: |
echo -e '\033[94;1m * * * 🛠️ Displaying Environment Variables'
echo "API_CONTAINER=${API_CONTAINER}"
echo "API_HOST=${API_HOST}"
echo "API_IMG=${API_IMG}"
echo "API_IP=${API_IP}"
echo "API_PORT=${API_PORT}"
echo "API_SERVICE=${API_SERVICE}"
echo "API_TAG=${API_TAG}"
echo "API_URL=${API_URL}"
echo "BFF_CONTAINER=${BFF_CONTAINER}"
echo "BFF_HOST=${BFF_HOST}"
echo "BFF_IMG=${BFF_IMG}"
echo "BFF_IP=${BFF_IP}"
echo "BFF_PORT=${BFF_PORT}"
echo "BFF_SERVICE=${BFF_SERVICE}"
echo "BFF_TAG=${BFF_TAG}"
echo "CV_NETWORK=${CV_NETWORK}"
echo "MYSQL_ADDR=${MYSQL_ADDR}"
echo "MYSQL_CONTAINER=${MYSQL_CONTAINER}"
echo "MYSQL_DATABASE=${MYSQL_DATABASE}"
echo "MYSQL_HOST=${MYSQL_HOST}"
echo "MYSQL_IMG=${MYSQL_IMG}"
echo "MYSQL_IP=${MYSQL_IP}"
echo "MYSQL_LOCAL_IP=${MYSQL_LOCAL_IP}"
- name: Display Secrets
env:
MYSQL_ROOT_PASSWORD: ${{ secrets.MYSQL_ROOT_PASSWORD }}
MYSQL_PASSWORD: ${{ secrets.MYSQL_PASSWORD }}
run: |
echo -e '\033[94;1m * * * 🛠️ Displaying Secrets'
echo "MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}"
echo "MYSQL_PASSWORD=${MYSQL_PASSWORD}"
96 changes: 40 additions & 56 deletions .github/workflows/venom-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,63 +15,47 @@ on:
jobs:
venom-tests:
runs-on: ubuntu-latest

environment: CV_project-staging
steps:
- name: checkout code
uses: actions/checkout@v4

- name: set up go
uses: actions/setup-go@v5
with:
go-version: 1.23.1

# - name: Verify go installation
# run: |
# echo -e '\033[94;1m * * * 🔗 pwd = '$(pwd) '\n\033[94;1m * * * 🐹 Go version'
# go version

# - name: Install dependencies
# working-directory: ./api
# run: |
# echo -e '\033[94;1m * * * 🔗 pwd = '$(pwd) '\n\033[94;1m * * * 🧰 Install dependencies'
# go mod tidy
- name: Checkout
uses: actions/checkout@main

# - name: Install docker compose
# run: |
# echo -e '\033[94;1m * * * 🐳 Installing docker compose'
# sudo curl -L "https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-linux-x86_64" -o /usr/local/bin/docker-compose
# sudo chmod +x /usr/local/bin/docker-compose

# - name: Set up Docker Compose
# run: |
# echo -e '\033[94;1m * * * 🛠️ Set up Docker'
# docker-compose -f ./docker-compose.yml up -d
# env:
# MYSQL_CONTAINER: ${{ secrets.MYSQL_CONTAINER }}
# MYSQL_ROOT_PASSWORD: ${{ secrets.MYSQL_ROOT_PASSWORD }}
# MYSQL_DATABASE: ${{ secrets.MYSQL_DATABASE }}
# MYSQL_USER: ${{ secrets.MYSQL_USER }}
# MYSQL_PASSWORD: ${{ secrets.MYSQL_PASSWORD }}
# API_IMG: ${{ secrets.API_IMG }}
# API_TAG: ${{ secrets.API_TAG }}
# API_CONTAINER: ${{ secrets.API_CONTAINER }}
# BFF_IMG: ${{ secrets.BFF_IMG }}
# BFF_TAG: ${{ secrets.BFF_TAG }}
# BFF_CONTAINER: ${{ secrets.BFF_CONTAINER }}

- name: Install venom
- name: Install docker compose
run: |
echo -e '\033[94;1m * * * 🐍 Installing venom'
curl https://github.com/ovh/venom/releases/download/v1.0.1/venom.linux-amd64 -L -o /usr/local/bin/venom
chmod +x /usr/local/bin/venom
- name: Run e2e tests
working-directory: ./api/tests
echo -e '\033[94;1m * * * 🐳 Installing docker compose'
sudo curl -L "https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-linux-x86_64" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
- name: Set up Docker Compose
env:
MYSQL_ROOT_PASSWORD: ${{ secrets.MYSQL_ROOT_PASSWORD }}
MYSQL_PASSWORD: ${{ secrets.MYSQL_PASSWORD }}
API_CONTAINER: ${{ vars.API_CONTAINER }}
API_HOST: ${{ vars.API_HOST }}
API_IMG: ${{ vars.API_IMG }}
API_IP: ${{ vars.API_IP }}
API_PORT: ${{ vars.API_PORT }}
API_SERVICE: ${{ vars.API_SERVICE }}
API_TAG: ${{ vars.API_TAG }}
API_URL: ${{ vars.API_URL }}
BFF_CONTAINER: ${{ vars.BFF_CONTAINER }}
BFF_HOST: ${{ vars.BFF_HOST }}
BFF_IMG: ${{ vars.BFF_IMG }}
BFF_IP: ${{ vars.BFF_IP }}
BFF_PORT: ${{ vars.BFF_PORT }}
BFF_SERVICE: ${{ vars.BFF_SERVICE }}
BFF_TAG: ${{ vars.BFF_TAG }}
CV_NETWORK: ${{ vars.CV_NETWORK }}
MYSQL_ADDR: ${{ vars.MYSQL_ADDR }}
MYSQL_CONTAINER: ${{ vars.MYSQL_CONTAINER }}
MYSQL_DATABASE: ${{ vars.MYSQL_DATABASE }}
MYSQL_HOST: ${{ vars.MYSQL_HOST }}
MYSQL_IMG: ${{ vars.MYSQL_IMG }}
MYSQL_IP: ${{ vars.MYSQL_IP }}
MYSQL_LOCAL_IP: ${{ vars.MYSQL_LOCAL_IP }}
run: |
echo -e '\033[94;1m * * * 🔗 pwd = '$(pwd) '\n\033[94;1m * * * ⭐ Run e2e tests'
venom run e2etests.yml
# - name: Stop docker compose
# run: |
# echo -e '\033[94;1m * * * ❌ Stop docker compose'
# docker-compose -f ./docker-compose.yml down --volumes
echo -e '\033[94;1m * * * 🛠️ Set up Docker''\033[94;1m * * * 🔗 pwd = '$(pwd) '\n\033[94;1m * * * ⭐ Run e2e tests'
echo 0 > venom-status.txt
docker-compose -f ./docker-compose.yml --profile=test up --build --exit-code-from cv_venom-service || echo $$ > venom-status.txt
exit `cat venom-status.txt`
working-directory: .
37 changes: 19 additions & 18 deletions api/tests/e2etests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,34 +3,35 @@ name: API E2E Tests

vars:
sql_ip: ""
api_ip: ""
api_ip: "cv_api-service"

testcases:
- name: Fetch DB Container IP
steps:
- type: exec
script: docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' cv_db-container
assertions:
- result.code ShouldEqual 0
extract:
sql_ip: result.systemout
# - name: Fetch DB Container IP
# steps:
# - type: exec
# script: docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' cv_db-container
# assertions:
# - result.code ShouldEqual 0
# extract:
# sql_ip: result.systemout

- name: Fetch API Container IP
steps:
- type: exec
script: docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' cv_api-container
assertions:
- result.code ShouldEqual 0
extract:
api_ip: result.systemout
# - name: Fetch API Container IP
# steps:
# - type: exec
# script: docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' cv_api-container
# assertions:
# - result.code ShouldEqual 0
# extract:
# api_ip: result.systemout

- name: DeleteUser
steps:
- type: http
method: DELETE
# url: "http://cv_api-service:8080/user/2" only if manualy solve ip
# url: "http://172.26.0.3:8080/user/5" # merge
url: "http://{{.api_ip}}:8080/user/7" # merge
url: "http://{{.api_ip}}:8080/user/8" # merge
# url: "http://{{.api_ip}}:8080/user/7" # merge
headers:
Content-Type: application/json
assertions:
Expand Down
52 changes: 38 additions & 14 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# ./docker-compose.yml
services:
cv_db-service:
env_file:
- ./.secrets
# env_file:
# - ./.secrets
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DATABASE}
Expand All @@ -28,8 +28,8 @@ services:
command: mysqld

cv_api-service:
env_file:
- ./.secrets
# env_file:
# - ./.secrets
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DATABASE}
Expand All @@ -54,8 +54,8 @@ services:
restart: always

cv_bff-service:
env_file:
- ./.secrets
# env_file:
# - ./.secrets
environment:
BFF_IMG: ${BFF_IMG}
BFF_TAG: ${BFF_TAG}
Expand All @@ -76,6 +76,38 @@ services:
cv_db-service:
condition: service_healthy

cv_venom-service:
container_name: cv_venom-container
image: alpine:3.12 #curl -s https://registry.hub.docker.com/v2/repositories/ovhcom/venom/tags | jq -r '.results[] | .name + " - " + (.last_updated | split("T")[0])' | sort -t '-' -k 2 -r
profiles: [ "test" ]
# env_file:
# - ./.secrets
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
MYSQL_HOST: ${MYSQL_HOST}
# api
API_CONTAINER: ${API_CONTAINER}
API_IP: ${API_IP}
API_PORT: ${API_PORT}
# bff
BFF_IMG: ${BFF_IMG}
BFF_TAG: ${BFF_TAG}
BFF_CONTAINER: ${BFF_CONTAINER}
depends_on:
cv_db-service:
condition: service_healthy
entrypoint: [ "sh", "-c", "wget https://github.com/ovh/venom/releases/download/v1.1.0/venom.linux-amd64 -O /usr/local/bin/venom && chmod +x /usr/local/bin/venom && venom run e2etests.yml" ]
volumes:
- ./api/tests:/app
working_dir: /app
networks:
- cv-network



networks:
cv-network:
name: cv-network
Expand All @@ -88,11 +120,3 @@ networks:
# mysql-data:
# name: cv_db-volume

# venom:
# build:
# context: tests
# container_name: venom
# profiles: [ "test" ]
# depends_on:
# api:
# condition: service_healthy

0 comments on commit 760de19

Please sign in to comment.