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 6e75dc4
Show file tree
Hide file tree
Showing 5 changed files with 256 additions and 163 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}"
98 changes: 42 additions & 56 deletions .github/workflows/venom-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,63 +15,49 @@ 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 }}
MYSQL_ROOT_USER: ${{ secrets.MYSQL_ROOT_USER }}
MYSQL_USER: ${{ secrets.MYSQL_USER }}
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: .
117 changes: 100 additions & 17 deletions api/tests/e2etests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,35 +3,118 @@ name: API E2E Tests

vars:
sql_ip: ""
api_ip: ""
api_ip: "cv_api-service"
username: "{{ MYSQL_USER }}"
user_password: "{{ MYSQL_PASSWORD }}"

testcases:
- name: Fetch DB Container IP
- name: Home
steps:
- type: exec
script: docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' cv_db-container
- type: http
method: GET
url: "http://{{.api_ip}}:8080/"
assertions:
- result.code ShouldEqual 0
extract:
sql_ip: result.systemout
- result.statuscode ShouldEqual 200

- name: Fetch API Container IP
- name: HomeUsers
steps:
- type: exec
script: docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' cv_api-container
- type: http
method: GET
url: "http://{{.api_ip}}:8080/users"
assertions:
- result.code ShouldEqual 0
extract:
api_ip: result.systemout
- result.statuscode ShouldEqual 200

- name: ShowUser
steps:
- type: http
method: GET
url: "http://{{.api_ip}}:8080/user/6"
assertions:
- result.statuscode ShouldEqual 200

- name: ShowUsers
steps:
- type: http
method: GET
url: "http://{{.api_ip}}:8080/user"
assertions:
- result.statuscode ShouldEqual 200

- 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/6"
assertions:
- result.statuscode ShouldEqual 204

- name: UpdateUser
steps:
- type: http
method: PUT
url: "http://{{.api_ip}}:8080/user/6"
headers:
Content-Type: application/json
body: '{"name": "cristy buliga", "email": "[email protected]"}'
assertions:
- result.statuscode ShouldEqual 204
- result.statuscode ShouldEqual 200

- name: HealthCheck
steps:
- type: http
method: GET
url: "http://{{.api_ip}}:8080/health"
assertions:
- result.statuscode ShouldEqual 200
# failing test

# - name: CreateUser
# steps:
# - type: http
# method: POST
# url: "http://{{.api_ip}}:8080/user"
# headers:
# Content-Type: application/json
# body: '{"name": "cristy buliga", "email": "[email protected]"}'
# assertions:
# - result.statuscode ShouldEqual 201

# - name: GenerateTemplate
# steps:
# - type: http
# method: GET
# url: "http://{{.api_ip}}:8080/pdf"
# assertions:
# - result.statuscode ShouldEqual 200

# - name: Login
# steps:
# - type: http
# method: POST
# url: "http://{{.api_ip}}:8080/login"
# headers:
# Content-Type: application/json
# body: '{"username": "{{.username}}", "password": "{{.user_password}}"}'
# assertions:
# - result.statuscode ShouldEqual 200

# - name: Signup
# steps:
# - type: http
# method: POST
# url: "http://{{.api_ip}}:8080/signup"
# headers:
# Content-Type: application/json
# body: '{"username": "Nelu", "password": "pass"}'
# assertions:
# - result.statuscode ShouldEqual 201

#
# - name: Logout
# steps:
# - type: http
# method: POST
# url: "http://{{.api_ip}}:8080/logout"
# assertions:
# - result.statuscode ShouldEqual 200

Loading

0 comments on commit 6e75dc4

Please sign in to comment.