Skip to content

fix.

fix. #75

Workflow file for this run

name: sad-server-ci
on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
jobs:
build-push-broker:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Set up QEMU
uses: docker/setup-qemu-action@v3
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
-
name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Build and push
uses: docker/build-push-action@v5
with:
context: ./kafka_server/broker/
push: true
tags: mahdigheidi/sad-broker:latest
build-push-coordinator:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Set up QEMU
uses: docker/setup-qemu-action@v3
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
-
name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Build and push
uses: docker/build-push-action@v5
with:
context: ./kafka_server/coordinator/
platforms: linux/amd64,linux/arm64
push: true
tags: mahdigheidi/sad-coordinator:latest
lint-test:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10"]
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install flake8
- name: Analysing the code with flake8
run: |
flake8 --ignore=E401,E402,E501 kafka_server/
# - name: Test with pytest
# run: |
# pytest
static-code-analysis:
name: Static Code Analysis
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: 3.x
- name: Install bandit
run: |
pip install bandit
- name: Run bandit
run: |
bandit --skip B104 -r .
deploy-prod-broker:
name: Deploy Broker to Production
runs-on: self-hosted
needs: build-push-broker
steps:
- name: checkout repo
uses: actions/checkout@v4
- name: set up ssh keys
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.SSH_PRIVATE_KEY }}
known_hosts: ${{ secrets.SSH_HOST }}
- name: connect and pull
run: |
ssh -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} "docker-compose up -d broker-1 broker-2 broker-3 && exit"
deploy-prod-coordinator:
name: Deploy Coordinator to Production
runs-on: self-hosted
needs: build-push-coordinator
steps:
- name: checkout repo
uses: actions/checkout@v4
- name: set up ssh keys
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.SSH_PRIVATE_KEY }}
known_hosts: ${{ secrets.SSH_HOST }}
- name: connect and pull
run: |
ls
ssh -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} "docker-compose up -d coordinator-1 coordinator-2 && exit"
deploy-monitoring:
name: Deploy Monitoring to Production
runs-on: self-hosted
steps:
- name: checkout repo
uses: actions/checkout@v4
- name: set up ssh keys
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.SSH_PRIVATE_KEY }}
known_hosts: ${{ secrets.SSH_HOST }}
- name: connect and pull
run: |
ls
ssh -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} "docker-compose up -d node_exporter prometheus grafana && exit"