From ee99e0f3cd009a9a6135bdf09dba66633f9ea12b Mon Sep 17 00:00:00 2001 From: Adora Date: Mon, 22 Jul 2024 23:40:20 -0600 Subject: [PATCH] Fix #11 Try to run collectstatic with deploy --- .github/workflows/poetry-django.yml | 121 +++++++++++++++++++--------- .github/workflows/static.yml | 47 ----------- 2 files changed, 85 insertions(+), 83 deletions(-) delete mode 100644 .github/workflows/static.yml diff --git a/.github/workflows/poetry-django.yml b/.github/workflows/poetry-django.yml index 2fbd9fe..fb4dee5 100644 --- a/.github/workflows/poetry-django.yml +++ b/.github/workflows/poetry-django.yml @@ -1,47 +1,96 @@ -name: Django CI +name: Collect static and deploy to Pages on: push: - branches: [ "prod" ] + branches: ["prod"] pull_request: - branches: [ "prod" ] + branches: ["prod"] + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false jobs: build: runs-on: ubuntu-latest - strategy: - max-parallel: 4 - matrix: - python-version: [3.12] - steps: - - uses: actions/checkout@v4 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v3 - with: - python-version: ${{ matrix.python-version }} - - name: Setup Poetry - # You may pin to the exact commit or the version. - # uses: Gr1N/setup-poetry@48b0f77c8c1b1b19cb962f0f00dff7b4be8f81ec - uses: Gr1N/setup-poetry@v9 + - name: Checkout code + uses: actions/checkout@v4 + with: + ref: 'prod' + + - name: Set up Python + uses: actions/setup-python@v3 + with: + python-version: 3.12 + + - name: Setup Poetry + uses: Gr1N/setup-poetry@v9 + with: + poetry-preview: false + poetry-version: 1.8.3 + + - name: Install dependencies + run: poetry install + + - name: Collect static + env: + SECRET_KEY: ${{ secrets.SECRET_KEY }} + AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }} + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_STORAGE_BUCKET_NAME: ${{ secrets.AWS_STORAGE_BUCKET_NAME }} + AWS_DB_NAME: ${{ secrets.AWS_DB_NAME }} + AWS_DB_USER: ${{ secrets.AWS_DB_USER }} + AWS_DB_PASSWORD: ${{ secrets.AWS_DB_PASSWORD }} + AWS_DB_HOST: ${{ secrets.AWS_DB_HOST }} + AWS_DB_PORT: ${{ secrets.AWS_DB_PORT }} + run: poetry run python manage.py collectstatic --noinput + + - name: Archive static files + uses: actions/upload-artifact@v3 with: - # Allow to install prerelease versions of Poetry - poetry-preview: false # optional, default is false - # Poetry version to use, if version is not provided then latest stable version will be used - poetry-version: 1.8.3 # optional - - name: Install Dependencies - run: poetry install - - name: Collect static - env: - SECRET_KEY: ${{ secrets.SECRET_KEY }} - AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }} - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_STORAGE_BUCKET_NAME: ${{ secrets.AWS_STORAGE_BUCKET_NAME }} - AWS_DB_NAME: ${{ secrets.AWS_DB_NAME }} - AWS_DB_USER: ${{ secrets.AWS_DB_USER }} - AWS_DB_PASSWORD: ${{ secrets.AWS_DB_PASSWORD }} - AWS_DB_HOST: ${{ secrets.AWS_DB_HOST }} - AWS_DB_PORT: ${{ secrets.AWS_DB_PORT }} - run: poetry run python manage.py collectstatic --noinput + name: assets + path: assets/ + + deploy: + + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: collect-static + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + ref: 'prod' + + - name: Download static files + uses: actions/download-artifact@v3 + with: + name: assets + path: ./assets + + - name: Setup Pages + uses: actions/configure-pages@v5 + + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: './assets' + + - name: Deploy to GitHub Pages + id: production + uses: actions/deploy-pages@v4 diff --git a/.github/workflows/static.yml b/.github/workflows/static.yml deleted file mode 100644 index 9f094e9..0000000 --- a/.github/workflows/static.yml +++ /dev/null @@ -1,47 +0,0 @@ -# Simple workflow for deploying static content to GitHub Pages -name: Deploy static content to Pages - -on: - # Runs on pushes targeting the default branch - push: - branches: ["prod"] - - pull_request: - branches: ["prod"] - - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: - -# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages -permissions: - contents: read - pages: write - id-token: write - -# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. -# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. -concurrency: - group: "pages" - cancel-in-progress: false - -jobs: - # Single deploy job since we're just deploying - deploy: - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - ref: 'prod' - - name: Setup Pages - uses: actions/configure-pages@v5 - - name: Upload artifact - uses: actions/upload-pages-artifact@v3 - with: - path: './assets' - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v4