feat: admin UI new improvements #123
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Sample workflow for building and deploying an Astro site to GitHub Pages | |
| # | |
| # To get started with Astro see: https://docs.astro.build/en/getting-started/ | |
| # | |
| name: Deploy Astro site to Pages | |
| on: | |
| # Runs on pushes targeting the default branch | |
| push: | |
| branches: [main] | |
| # 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 | |
| env: | |
| BUILD_PATH: . # default value when not using subfolders | |
| # BUILD_PATH: subfolder | |
| jobs: | |
| deploy_backend: | |
| name: backend | |
| runs-on: self-hosted | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Reveal the git secrets | |
| run: | | |
| git secret reveal | |
| - name: Use docker-compose to run backend | |
| run: | | |
| docker compose -f docker-compose.yml up -d --build | |
| build: | |
| needs: deploy_backend # more likely this frontend version requires something from the backend if the backend fails there is no need for this to run | |
| name: Build | |
| runs-on: self-hosted | |
| timeout-minutes: 30 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Reveal the secrets | |
| run: | | |
| git secret reveal | |
| - name: Install pnpm | |
| uses: pnpm/action-setup@v4 | |
| - name: Setup Node | |
| uses: actions/setup-node@v6 # Action to set up the Node.js environment | |
| with: | |
| node-version: '22' # Keep CI reproducible instead of floating to the latest runtime | |
| cache: 'pnpm' # Optional: Caches npm dependencies to speed up subsequent runs | |
| - name: Setup Pages | |
| id: pages | |
| uses: actions/configure-pages@v5 | |
| - name: Install packages | |
| run: | | |
| pnpm install --frozen-lockfile | |
| - name: Build with Astro | |
| run: | | |
| pnpm run build --mode production | |
| - name: Upload artifact | |
| uses: actions/upload-pages-artifact@v3 | |
| with: | |
| path: ${{ env.BUILD_PATH }}/dist | |
| deploy: | |
| environment: | |
| name: github-pages | |
| url: ${{ steps.deployment.outputs.page_url }} | |
| needs: build | |
| runs-on: ubuntu-latest | |
| name: Deploy | |
| steps: | |
| - name: Deploy to GitHub Pages | |
| id: deployment | |
| uses: actions/deploy-pages@v4 | |
| notify_failure_backend: | |
| name: Notify that the backend failed | |
| needs: deploy_backend | |
| if: ${{ always() && needs.deploy_backend.result == 'failure' }} | |
| uses: ./.github/workflows/ci_project.yml | |
| with: | |
| # Pass the final status of the job you want to report on | |
| status: ${{ needs.deploy_backend.result }} | |
| # Pass required context for verbose messaging | |
| repo_name: ${{ github.repository }} | |
| branch: ${{ github.ref_name }} | |
| commit_message: ${{ github.event.head_commit.message }} | |
| run_url: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} | |
| secrets: | |
| DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} | |
| TELEGRAM_TO: ${{ secrets.TELEGRAM_TO }} | |
| TELEGRAM_TOKEN: ${{ secrets.TELEGRAM_TOKEN }} | |
| notify_failure_build: | |
| name: Notify that the build of the frontend (github pages made on Astro) failed | |
| needs: build | |
| if: ${{ always() && needs.build.result == 'failure' }} | |
| uses: ./.github/workflows/ci_project.yml | |
| with: | |
| # Pass the final status of the job you want to report on | |
| status: ${{ needs.build.result }} | |
| # Pass required context for verbose messaging | |
| repo_name: ${{ github.repository }} | |
| branch: ${{ github.ref_name }} | |
| commit_message: ${{ github.event.head_commit.message }} | |
| run_url: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} | |
| secrets: | |
| DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} | |
| TELEGRAM_TO: ${{ secrets.TELEGRAM_TO }} | |
| TELEGRAM_TOKEN: ${{ secrets.TELEGRAM_TOKEN }} | |
| notify: | |
| name: Final notification of whether the deployment of the github pages either failed or was successful | |
| needs: deploy | |
| if: ${{ always() && (needs.deploy.result == 'failure' || needs.deploy.result == 'success') }} | |
| uses: ./.github/workflows/ci_project.yml | |
| with: | |
| # Pass the final status of the job you want to report on | |
| status: ${{ needs.deploy.result }} | |
| # Pass required context for verbose messaging | |
| repo_name: ${{ github.repository }} | |
| branch: ${{ github.ref_name }} | |
| commit_message: ${{ github.event.head_commit.message }} | |
| run_url: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} | |
| secrets: | |
| DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} | |
| TELEGRAM_TO: ${{ secrets.TELEGRAM_TO }} | |
| TELEGRAM_TOKEN: ${{ secrets.TELEGRAM_TOKEN }} |