name: build on: push: branches: - "master" jobs: tests: runs-on: ubuntu-latest services: redis: image: redis options: >- --health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5 ports: - 6379:6379 steps: - name: Checkout uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v2 with: python-version: "3.10" - name: Install Dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt pip install coverage coveralls - name: Run Tests env: REDIS_URL: redis://redis:${{ job.services.redis.ports[6379] }}/0 run: | python manage.py collectstatic --noinput python manage.py migrate --noinput python manage.py test --noinput - name: Run codecov uses: codecov/codecov-action@v1 with: token: ${{ secrets.CODECOV_TOKEN }} file: ./coverage.xml flags: unittests name: codecov-umbrella fail_ci_if_error: true - name: Coveralls GitHub Action uses: coverallsapp/github-action@1.1.3 build: runs-on: ubuntu-latest needs: [tests] steps: - name: Checkout uses: actions/checkout@v3 - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Login to DockerHub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Extract metadata for the Docker image id: meta uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38 with: images: dntskdev/later42 - name: Build and push uses: docker/build-push-action@v3 with: context: . push: true tags: ${{ steps.meta.outputs.tags }} deploy: runs-on: ubuntu-latest needs: [build] steps: - name: Deploy run: |- mkdir -p /home/runner/.ssh echo "$SSH_KEY" > /home/runner/.ssh/id_rsa chmod 600 /home/runner/.ssh/id_rsa cat >> /home/runner/.ssh/config <