Skip to content

build: Reload dependencies when bundling (WIP) #404

build: Reload dependencies when bundling (WIP)

build: Reload dependencies when bundling (WIP) #404

Workflow file for this run

name: CI
on:
push:
paths:
- "assets/**"
- "src/**"
- "tests/**"
- "dev/**"
- ".github/workflows/*"
- "deno.lock"
- "deno.json"
- "deps.ts"
- "deps-test.ts"
workflow_dispatch:
env:
denoVersion: "v2.0.0"
DENO_DIR: deno
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Setup
uses: dhardtke/prandium/.github/actions/setup@main
with:
denoVersion: ${{ env.denoVersion }}
cacheVersion: ${{ secrets.CACHE_VERSION }}
denoDir: ${{ env.DENO_DIR }}
- name: Format
run: deno task fmt:check
- name: Lint
run: deno task lint
test:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- name: Setup
uses: dhardtke/prandium/.github/actions/setup@main
with:
denoVersion: ${{ env.denoVersion }}
cacheVersion: ${{ secrets.CACHE_VERSION }}
denoDir: ${{ env.DENO_DIR }}
- name: Run tests
run: deno task test:coverage -- `find src/ -name '*.ts' | xargs echo` tests/
- name: Generate lcov
run: deno task coverage
- name: Upload coverage
uses: codecov/codecov-action@v4
with:
files: out/coverage.lcov
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
verbose: true
build:
needs: [ lint, test ]
runs-on: ubuntu-latest
steps:
- name: Setup
uses: dhardtke/prandium/.github/actions/setup@main
with:
denoVersion: ${{ env.denoVersion }}
cacheVersion: ${{ secrets.CACHE_VERSION }}
denoDir: ${{ env.DENO_DIR }}
- name: Setup build tools
run: |
sudo apt-get install -y brotli gzip nodejs
npm install -g esbuild lightningcss-cli sass
echo sass version
sass --version
echo esbuild version
esbuild --version
# echo lightningcss version
# lightningcss --version
echo gzip version
gzip --version
echo brotli version
brotli --version
- name: Debug
run: npm config ls
- name: Build
run: deno task build
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: prandium
path: out/
release:
needs: [ build ]
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/v')
steps:
- name: Clone repository
uses: actions/checkout@v4
with:
submodules: true
persist-credentials: false
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: prandium
path: out/
- name: Remove non-minified files
run: |
cd out/
rm server.js
cd ../assets/
rm index.css* index.js
- name: Create release zip
run: |
cd out/
zip -r prandium-${{github.ref_name}}.zip * ../docs/* ../README.md ../LICENSE
- name: Build Changelog
id: github_release
uses: mikepenz/release-changelog-builder-action@v1
with:
configuration: .github/changelog-config.json
commitMode: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Create GitHub Release
uses: ncipollo/release-action@v1
with:
artifacts: prandium-${{github.ref_name}}.zip
body: ${{steps.github_release.outputs.changelog}}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}