diff --git a/.github/workflows/ci_cd.yml b/.github/workflows/ci_cd.yml new file mode 100644 index 0000000..bd8cca7 --- /dev/null +++ b/.github/workflows/ci_cd.yml @@ -0,0 +1,56 @@ +name: CI/CD + +on: [push, pull_request] + +permissions: read-all + +jobs: + setup: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: 3.8 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + + lint: + needs: setup + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Run flake8 + run: | + pip install flake8 + flake8 . || true + + build: + needs: lint + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Build Django app + run: | + python manage.py migrate + python manage.py collectstatic --noinput + + push: + needs: build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_PASSWORD }} + - name: Build and push Docker image + uses: docker/build-push-action@v2 + with: + context: . + push: true + tags: ${{ secrets.DOCKERHUB_USERNAME }}/djangoline:latest