name: CI/CD Pipeline on: push: branches: - main pull_request: branches: - main jobs: build: runs-on: [self-hosted, linux] steps: - name: Checkout code uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v4 with: python-version: '3.12' - name: Install dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt test: runs-on: [self-hosted, linux] steps: - name: Checkout code uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v4 with: python-version: '3.12' - name: Install dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt - name: Run tests run: | pytest tests/unit -n auto --junitxml=reports/unit.xml --cov=app --cov-report=xml:reports/coverage.xml pytest tests/integration --junitxml=reports/integration.xml pytest tests/e2e --junitxml=reports/e2e.xml deploy: runs-on: [self-hosted, linux] steps: - name: Checkout code uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v4 with: python-version: '3.12' - name: Install dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt - name: Deploy to AWS (Example with AWS CLI) run: | aws configure set aws_access_key_id ${{ secrets.AWS_ACCESS_KEY_ID }} aws configure set aws_secret_access_key ${{ secrets.AWS_SECRET_ACCESS_KEY }} aws configure set region us-east-1 aws s3 cp ./build/ s3://my-bucket-name/ --recursive