From 7e2dd22b105a5fd370ddfc728652648a94f68646 Mon Sep 17 00:00:00 2001 From: Arnold Date: Sat, 11 May 2024 02:44:11 +0200 Subject: [PATCH] Updating workflows (#46) * updating workflows * another test for deployment workflow * making the workflows more polished --- .github/workflows/deployment.yml | 58 ++++++++++++++++++++++-------- .github/workflows/pull-request.yml | 2 -- 2 files changed, 43 insertions(+), 17 deletions(-) diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml index a6a6fdd..bcd4e78 100644 --- a/.github/workflows/deployment.yml +++ b/.github/workflows/deployment.yml @@ -1,23 +1,50 @@ -name: Deploying +name: Workflows on Master on: - workflow_run: - workflows: ["Deploy", "Deploy static content to Pages"] + push: branches: - master - types: - - completed + +permissions: + contents: read + pages: write + id-token: write jobs: - deploy_after_master_push: + build_and_deploy: runs-on: ubuntu-latest - if: github.ref == 'refs/heads/master' && (github.event_name == 'push' || github.event.workflow_run.conclusion == 'success') steps: - name: Checkout Repository uses: actions/checkout@v2 - - name: Deploy via SSH - if: github.event.workflow_run.name == 'Deploy' + - name: Set up Python 3.11 for Flake8 + uses: actions/setup-python@v3 + with: + python-version: "3.11" + + - name: Install Flake8 + run: pip install flake8 + + - name: Lint with Flake8 + run: flake8 --ignore=E501,F401,E402,F811,E731,F403,E722 . + + - name: Set up Python 3.11 for Django + uses: actions/setup-python@v3 + with: + python-version: "3.11" + + - name: Install Dependencies for Django + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + cp config.example.py config.py + + - name: Run Tests for Django + run: | + python manage.py test + + - name: Configure SSH for Deployment + if: success() env: SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} SSH_HOST: ${{ secrets.SSH_HOST }} @@ -34,15 +61,16 @@ jobs: LogLevel ERROR StrictHostKeyChecking no END + + - name: Deploy to Production + if: success() && github.ref == 'refs/heads/master' + needs: [build_and_deploy] + run: | ssh target "cd tldtest && git pull origin master && docker-compose down && docker-compose up --build -d" - name: Deploy static content to GitHub Pages - if: github.event.workflow_run.name == 'Deploy static content to Pages' - uses: actions/checkout@v4 - with: - ref: ${{ github.event.workflow_run.head_commit.sha }} - - name: Deploy static content to Pages - if: github.event.workflow_run.name == 'Deploy static content to Pages' + if: success() && github.ref == 'refs/heads/master' + needs: [build_and_deploy] uses: actions/deploy-pages@v4 with: token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index f8942d5..ec151a6 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -1,8 +1,6 @@ name: Django test and Flake 8 on: - push: - branches: [ "master" ] pull_request: branches: [ "master" ]