Skip to content

feat / improve up-next experience #63

feat / improve up-next experience

feat / improve up-next experience #63

Workflow file for this run

name: The Trial of Truth aka CI
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
files-changed:
if: github.event.pull_request.draft == false
name: The Scrutiny of Change
runs-on: ubuntu-latest
outputs:
api_source: ${{ steps.changes.outputs.api_source }}
client_source: ${{ steps.changes.outputs.client_source }}
workflows: ${{ steps.changes.outputs.workflows }}
steps:
- name: Unveiling the Repository
uses: actions/checkout@v4
- name: The Chronicle of Alterations
uses: dorny/paths-filter@v3
id: changes
with:
filters: |
api_source:
- 'projects/api/src/**'
- 'projects/api/deno.json'
client_source:
- 'projects/client/src/**'
- 'projects/client/i18n/**'
- 'projects/client/static/**'
- 'projects/client/package.json'
- 'projects/client/deno.json'
- 'projects/client/svelte.config.js'
- 'projects/client/vite.config.ts'
- 'projects/client/wrangler.toml'
workflows:
- '.github/workflows/**'
test:
needs: files-changed
if: ${{
needs.files-changed.outputs.api_source == 'true' ||
needs.files-changed.outputs.client_source == 'true' ||
needs.files-changed.outputs.workflows == 'true'
}}
name: The Interrogation Room (Test)
runs-on: ubuntu-latest
steps:
- name: Secure the Evidence aka Checkout Code
uses: actions/checkout@v4
- name: Summon the Digital Oracle aka Install Deno
uses: denoland/setup-deno@v2
with:
deno-version: v2.x
- name: Gather the Tools aka Install Dependencies
run: "deno task install"
- name: Probe the Client's Mind aka Run Tests
working-directory: projects/client
run: "deno task test:unit"
- name: Consulting the Oracles of Type aka Type Check
working-directory: projects/client
run: "deno task check"
- name: Probing the API's Mind aka Run Tests
working-directory: projects/api
run: "deno task test"
build:
name: The Forge (Build)
runs-on: ubuntu-latest
needs: test
steps:
- name: Secure the Evidence aka Checkout Code
uses: actions/checkout@v4
- name: Summon the Digital Oracle aka Install Deno
uses: denoland/setup-deno@v2
with:
deno-version: v2.x
- name: Gather the Tools aka Install Dependencies
run: "deno task install"
- name: Weaving the Digital Tapestry aka Build
working-directory: projects/client
run: "deno task build"
env:
TRAKT_CLIENT_ID: ${{ secrets.TRAKT_CLIENT_ID }}
- name: Delivering the Goods aka Upload Build
if: github.ref == 'refs/heads/main'
uses: ./.github/actions/upload-output
with:
buildArtifact: pandoras-archive
cloudflareArtifact: the-edge-awakened
wranglerArtifact: the-edge-config