Skip to content

Commit

Permalink
Merge pull request #12 from pagopa/PPANTT-131-feat-add-integration-tests
Browse files Browse the repository at this point in the history
[PPANTT-131] feat: add introducing integration tests
  • Loading branch information
alessio-cialini authored Oct 2, 2024
2 parents f15d2d5 + b0e4c0e commit 879119a
Show file tree
Hide file tree
Showing 33 changed files with 729 additions and 478 deletions.
143 changes: 71 additions & 72 deletions .github/workflows/code_review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,77 +45,76 @@ jobs:
cpd_exclusions: "**/models/**,**/clients/model/**,**/entity/*"
coverage_report_path: "./target/jacoco-report/jacoco.xml"

# smoke-test:
# name: Smoke Test
# runs-on: ubuntu-latest
# environment:
# name: dev
# steps:
# - name: Checkout
# id: checkout
# uses: actions/checkout@1f9a0c22da41e6ebfa534300ef656657ea2c6707
#
# - name: Login
# id: login
# # from https://github.com/Azure/login/commits/master
# uses: azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2
# with:
# client-id: ${{ secrets.CLIENT_ID }}
# tenant-id: ${{ secrets.TENANT_ID }}
# subscription-id: ${{ secrets.SUBSCRIPTION_ID }}
#
# - name: Run Service on Docker
# shell: bash
# id: run_service_docker
# run: |
# cd ./docker
# chmod +x ./run_docker.sh
# ./run_docker.sh local
#
# - name: Run Integration Tests
# shell: bash
# id: run_integration_test
# run: |
# export GPD_PULL_API_SUBSCRIPTION_KEY=${{ secrets.PULL_SUBKEY }}
# export CANARY=${{ inputs.canary }}
# export CUCUMBER_PUBLISH_TOKEN=${{ secrets.CUCUMBER_PUBLISH_TOKEN }}
# export SUBKEY=${{ secrets.SUBKEY }}
#
# cd ./integration-test
# chmod +x ./run_integration_test.sh
# ./run_integration_test.sh local
smoke-test:
name: Smoke Test
runs-on: ubuntu-latest
environment:
name: dev
steps:
- name: Checkout
id: checkout
uses: actions/checkout@1f9a0c22da41e6ebfa534300ef656657ea2c6707

- name: Login
id: login
# from https://github.com/Azure/login/commits/master
uses: azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2
with:
client-id: ${{ secrets.CLIENT_ID }}
tenant-id: ${{ secrets.TENANT_ID }}
subscription-id: ${{ secrets.SUBSCRIPTION_ID }}

- name: Run Service on Docker
shell: bash
id: run_service_docker
run: |
cd ./docker
chmod +x ./run_docker.sh
./run_docker.sh local
- name: Run Integration Tests
shell: bash
id: run_integration_test
run: |
export CANARY=${{ inputs.canary }}
export CUCUMBER_PUBLISH_TOKEN=${{ secrets.CUCUMBER_PUBLISH_TOKEN }}
export SUBKEY=${{ secrets.SUBKEY }}
cd ./integration-test
chmod +x ./run_integration_test.sh
./run_integration_test.sh local
delete_github_deployments:
runs-on: ubuntu-latest
needs: smoke-test
if: ${{ always() }}
steps:
- name: Delete Previous deployments
uses: actions/github-script@v6
env:
SHA_HEAD: ${{ (github.event_name == 'pull_request' && github.event.pull_request.head.sha) || github.sha}}
with:
script: |
const { SHA_HEAD } = process.env
# delete_github_deployments:
# runs-on: ubuntu-latest
# needs: smoke-test
# if: ${{ always() }}
# steps:
# - name: Delete Previous deployments
# uses: actions/github-script@v6
# env:
# SHA_HEAD: ${{ (github.event_name == 'pull_request' && github.event.pull_request.head.sha) || github.sha}}
# with:
# script: |
# const { SHA_HEAD } = process.env
#
# const deployments = await github.rest.repos.listDeployments({
# owner: context.repo.owner,
# repo: context.repo.repo,
# sha: SHA_HEAD
# });
# await Promise.all(
# deployments.data.map(async (deployment) => {
# await github.rest.repos.createDeploymentStatus({
# owner: context.repo.owner,
# repo: context.repo.repo,
# deployment_id: deployment.id,
# state: 'inactive'
# });
# return github.rest.repos.deleteDeployment({
# owner: context.repo.owner,
# repo: context.repo.repo,
# deployment_id: deployment.id
# });
# })
# );
const deployments = await github.rest.repos.listDeployments({
owner: context.repo.owner,
repo: context.repo.repo,
sha: SHA_HEAD
});
await Promise.all(
deployments.data.map(async (deployment) => {
await github.rest.repos.createDeploymentStatus({
owner: context.repo.owner,
repo: context.repo.repo,
deployment_id: deployment.id,
state: 'inactive'
});
return github.rest.repos.deleteDeployment({
owner: context.repo.owner,
repo: context.repo.repo,
deployment_id: deployment.id
});
})
);
12 changes: 0 additions & 12 deletions docker/alertmanager/alertmanager.conf

This file was deleted.

120 changes: 14 additions & 106 deletions docker/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,113 +1,21 @@
version: '3.8'

services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.6.2
app:
container_name: 'pagopa-payment-options-service'
image: ${image}
platform: linux/amd64
build:
dockerfile: Dockerfile_integration_test
context: ../
args:
QUARKUS_PROFILE: prod
APP_NAME: pagopa-payment-options-service
SLEEP_FOR_INTEGRATION: 180000
env_file:
- ./.env
ports:
- "9200:9200"
- "9300:9300"
environment:
ES_JAVA_OPTS: "-Xms512m -Xmx512m"
discovery.type: "single-node"
xpack.security.enabled: false
xpack.security.enrollment.enabled: false
networks:
- infra

kibana:
image: docker.elastic.co/kibana/kibana:8.6.2
ports:
- "5601:5601"
networks:
- infra
depends_on:
- elasticsearch

alertmanager:
hostname: alertmanager
image: prom/alertmanager
volumes:
- ${PWD}/alertmanager/alertmanager.conf:/etc/alertmanager/alertmanager.conf
command:
- '--config.file=/etc/alertmanager/alertmanager.conf'
ports:
- "9093:9093"
networks:
- infra

prometheus:
hostname: prometheus
image: prom/prometheus
volumes:
- ${PWD}/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
- ${PWD}/prometheus/alert_rules.yml:/etc/prometheus/alert_rules.yml
- prometheus_data:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
links:
- alertmanager:alertmanager
ports:
- "9090:9090"
networks:
- infra

grafana:
hostname: grafana
image: grafana/grafana
volumes:
- ${PWD}/grafana/grafana_datasources.yml:/etc/grafana/provisioning/datasources/all.yaml
- ${PWD}/grafana/grafana_config.ini:/etc/grafana/config.ini
- grafana_data:/var/lib/grafana
ports:
- "3000:3000"
networks:
- infra

jaeger-all-in-one:
image: jaegertracing/all-in-one:latest
ports:
- "16686:16686"
- "14268:14268"
- "14250:14250"
networks:
- infra

otel-collector:
image: otel/opentelemetry-collector:latest
command: [ "--config=/etc/otel-collector-config.yaml" ]
volumes:
- ${PWD}/otel-collector/otel-collector-config.yaml:/etc/otel-collector-config.yaml:Z
ports:
- "13133:13133" # Health-check extension
- "4317:4317" # OTLP gRPC receiver
depends_on:
- jaeger-all-in-one
networks:
- infra

# mongo:
# image: mongo
# restart: always
# environment:
# MONGO_INITDB_ROOT_USERNAME: root
# MONGO_INITDB_ROOT_PASSWORD: example
# ports:
# - 27017:27017
# networks:
# - infra
#
# mongo-express:
# image: mongo-express
# restart: always
# ports:
# - 8085:8081
# environment:
# ME_CONFIG_MONGODB_ADMINUSERNAME: root
# ME_CONFIG_MONGODB_ADMINPASSWORD: example
# ME_CONFIG_MONGODB_URL: mongodb://root:example@mongo:27017/
# networks:
# - infra

- "8080:8080"

volumes:
prometheus_data: { }
Expand Down
5 changes: 0 additions & 5 deletions docker/grafana/grafana_config.ini

This file was deleted.

7 changes: 0 additions & 7 deletions docker/grafana/grafana_datasources.yml

This file was deleted.

33 changes: 0 additions & 33 deletions docker/otel-collector/otel-collector-config.yaml

This file was deleted.

13 changes: 0 additions & 13 deletions docker/prometheus/alert_rules.yml

This file was deleted.

29 changes: 0 additions & 29 deletions docker/prometheus/prometheus.yml

This file was deleted.

Loading

0 comments on commit 879119a

Please sign in to comment.