Skip to content

remove some warnings from code analyzer #75

remove some warnings from code analyzer

remove some warnings from code analyzer #75

Workflow file for this run

name: e2e
on:
pull_request:
types: [ opened, reopened, synchronize ]
jobs:
e2e-tests:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up JDK 21 for x64
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
architecture: x64
- name: Setup Gradle 8.6
uses: gradle/actions/setup-gradle@v3
with:
gradle-version: 8.6
- name: Build and run e2e-tests
env:
PROFILE: docker
PREFIX: qaguru
ARCH: amd64
FRONT: niffler-ng-client
ALLURE_DOCKER_API: ${{ secrets.ALLURE_DOCKER_API }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BUILD_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
HEAD_COMMIT_MESSAGE: ${{ github.event.pull_request.head.sha || github.sha }}
EXECUTION_TYPE: github
run: |
: # build backends with profile `docker`, only for testing
bash ./gradlew jibDockerBuild -x :niffler-e-2-e-tests:test || exit 1
: # pull browser (see browsers.json)
docker pull selenoid/vnc_chrome:127.0
: # run e2e tests
docker compose -f docker-compose.test.yml up -d
docker ps -a
docker wait niffler-e-2-e
exit_code=$(docker inspect -f '{{.State.ExitCode}}' niffler-e-2-e)
echo "### Test logs ###"
docker logs niffler-e-2-e
docker compose -f docker-compose.test.yml down
docker system prune -a -f
if [ "$exit_code" -eq "0" ]; then
echo "Tests passed successfully!"
exit 0
else
echo "Tests failed!"
exit 1
fi
- name: Add comment to PR with link to allure
if: always()
uses: actions/github-script@v6
with:
script: |
const issues = await github.rest.pulls.list({
owner: context.repo.owner,
repo: context.repo.repo,
state: 'open',
head: `${context.repo.owner}:${context.ref.replace('refs/heads/', '')}`
})
const pr = context.issue.number || issues.data[0].number
github.rest.issues.createComment({
issue_number: pr,
owner: context.repo.owner,
repo: context.repo.repo,
body: '👋 There is the last [Allure report](https://allure.niffler-stage.qa.guru/api/allure-docker-service/projects/niffler-ng/reports/latest/index.html)\n🕓 All reports [history](https://allure.niffler-stage.qa.guru/allure-docker-service-ui/projects/niffler-ng)'
})
collect-versions:
needs: e2e-tests
uses: ./.github/workflows/versions.yml
with:
runner: niffler-stage-runner
deploy-services:
runs-on: niffler-stage-runner
needs: collect-versions
steps:
- name: Push required props to GITHUB_ENV
run: |
echo "PROFILE=staging" >> $GITHUB_ENV
echo "PREFIX=${{ vars.DOCKER_HUB_ACC }}" >> $GITHUB_ENV
echo "VAULT_TOKEN=${{ secrets.VAULT_TOKEN }}" >> $GITHUB_ENV
echo "AUTH_VER=${{ needs.collect-versions.outputs.auth-ver }}" >> $GITHUB_ENV
echo "CURRENCY_VER=${{ needs.collect-versions.outputs.currency-ver }}" >> $GITHUB_ENV
echo "GATEWAY_VER=${{ needs.collect-versions.outputs.gateway-ver }}" >> $GITHUB_ENV
echo "SPEND_VER=${{ needs.collect-versions.outputs.spend-ver }}" >> $GITHUB_ENV
echo "USERDATA_VER=${{ needs.collect-versions.outputs.userdata-ver }}" >> $GITHUB_ENV
echo "FRONT_VER=${{ needs.collect-versions.outputs.front-ver }}" >> $GITHUB_ENV
echo "FRONT_IMAGE=niffler-ng-client" >> $GITHUB_ENV
- name: Summary info
run: |
echo "### niffler-auth version will be used: ${{ env.PREFIX }}/niffler-auth-${{ env.PROFILE }}:${{ env.AUTH_VER }}"
echo "### niffler-currency version will be used: ${{ env.PREFIX }}/niffler-currency-${{ env.PROFILE }}:${{ env.CURRENCY_VER }}"
echo "### niffler-gateway version will be used: ${{ env.PREFIX }}/niffler-gateway-${{ env.PROFILE }}:${{ env.GATEWAY_VER }}"
echo "### niffler-spend version will be used: ${{ env.PREFIX }}/niffler-spend-${{ env.PROFILE }}:${{ env.SPEND_VER }}"
echo "### niffler-userdata version will be used: ${{ env.PREFIX }}/niffler-userdata-${{ env.PROFILE }}:${{ env.USERDATA_VER }}"
echo "### niffler-front version will be used: ${{ env.PREFIX }}/${{ env.FRONT_IMAGE }}-${{ env.PROFILE }}:${{ env.FRONT_VER }}"
echo "### java version ###"
java -version
- name: Check changes path
uses: dorny/paths-filter@v3
id: changes
with:
filters: |
auth:
- 'niffler-auth/**'
currency:
- 'niffler-currency/**'
gateway:
- 'niffler-gateway/**'
spend:
- 'niffler-spend/**'
userdata:
- 'niffler-userdata/**'
frontend:
- 'niffler-ng-client/**'
- name: Docker login
run: |
docker login --username ${{ vars.DOCKER_HUB_ACC }} --password "${{ secrets.DOCKER_HUB_PASSWORD }}"
- name: build auth & deploy to staging
if: steps.changes.outputs.auth == 'true'
working-directory: ./
run: |
pwd
bash ./gradlew :niffler-auth:jib -x :niffler-e-2-e-tests:test
docker compose -f docker-compose.ci.yml pull auth.niffler.dc
docker compose -f docker-compose.ci.yml stop auth.niffler.dc && docker compose -f docker-compose.ci.yml up -d --no-deps auth.niffler.dc
docker system prune -a -f
echo "Deploy auth to staging done!"
- name: build currency & deploy to staging
if: steps.changes.outputs.currency == 'true'
working-directory: ./
run: |
pwd
bash ./gradlew :niffler-currency:jib -x :niffler-e-2-e-tests:test
docker compose -f docker-compose.ci.yml pull currency.niffler.dc
docker compose -f docker-compose.ci.yml stop currency.niffler.dc && docker compose -f docker-compose.ci.yml up -d --no-deps currency.niffler.dc
docker system prune -a -f
echo "Deploy currency to staging done!"
- name: build gateway & deploy to staging
if: steps.changes.outputs.gateway == 'true'
working-directory: ./
run: |
pwd
bash ./gradlew :niffler-gateway:jib -x :niffler-e-2-e-tests:test
docker compose -f docker-compose.ci.yml pull gateway.niffler.dc
docker compose -f docker-compose.ci.yml stop gateway.niffler.dc && docker compose -f docker-compose.ci.yml up -d --no-deps gateway.niffler.dc
docker system prune -a -f
echo "Deploy gateway to staging done!"
- name: build spend & deploy to staging
if: steps.changes.outputs.spend == 'true'
working-directory: ./
run: |
pwd
bash ./gradlew :niffler-spend:jib -x :niffler-e-2-e-tests:test
docker compose -f docker-compose.ci.yml pull spend.niffler.dc
docker compose -f docker-compose.ci.yml stop spend.niffler.dc && docker compose -f docker-compose.ci.yml up -d --no-deps spend.niffler.dc
docker system prune -a -f
echo "Deploy spend to staging done!"
- name: build userdata & deploy to staging
if: steps.changes.outputs.userdata == 'true'
working-directory: ./
run: |
pwd
bash ./gradlew :niffler-userdata:jib -x :niffler-e-2-e-tests:test
docker compose -f docker-compose.ci.yml pull userdata.niffler.dc
docker compose -f docker-compose.ci.yml stop userdata.niffler.dc && docker compose -f docker-compose.ci.yml up -d --no-deps userdata.niffler.dc
docker system prune -a -f
echo "Deploy userdata to staging done!"
- name: build frontend & deploy to staging
if: steps.changes.outputs.frontend == 'true'
working-directory: ./niffler-ng-client
run: |
pwd
IMAGE_TAG="${{ env.PREFIX }}/${{ env.FRONT_IMAGE }}-${{ env.PROFILE }}"
docker build --build-arg NPM_COMMAND=staging:build -t ${IMAGE_TAG}:${{ env.FRONT_VER }} -t ${IMAGE_TAG}:latest .
docker push ${IMAGE_TAG}:${{ env.FRONT_VER }}
docker push ${IMAGE_TAG}:latest
cd ../ || exit 1
docker compose -f docker-compose.ci.yml pull frontend.niffler.dc
docker compose -f docker-compose.ci.yml stop frontend.niffler.dc && docker compose -f docker-compose.ci.yml up -d --no-deps frontend.niffler.dc
docker system prune -a -f
echo "Deploy frontend to staging done!"