add workflow
This commit is contained in:
parent
535a59f092
commit
912bf9d0bd
4 changed files with 160 additions and 0 deletions
17
.forgejo/README.md
Normal file
17
.forgejo/README.md
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
# Forgejo workflows
|
||||||
|
|
||||||
|
This folder contains CI workflows for the three application areas in this repository:
|
||||||
|
|
||||||
|
- `backend.yml` for the .NET API and integration tests
|
||||||
|
- `web.yml` for the Nuxt front-end
|
||||||
|
- `addin.yml` for the Office add-in task pane
|
||||||
|
|
||||||
|
These workflows use the standard GitHub Actions syntax supported by Forgejo/Gitea runners.
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
- The backend workflow runs `dotnet restore`, `dotnet build`, and `dotnet test` on the solution.
|
||||||
|
- The web workflow runs `npm install`, `npm run test`, and `npm run build` inside the `web` folder.
|
||||||
|
- The add-in workflow runs `npm install`, `npm test`, `npm run validate`, and `npm run build` inside the `addin` folder.
|
||||||
|
|
||||||
|
If your Forgejo instance uses self-hosted runners, ensure Docker is enabled for the backend integration tests.
|
||||||
48
.forgejo/workflows/addin.yml
Normal file
48
.forgejo/workflows/addin.yml
Normal file
|
|
@ -0,0 +1,48 @@
|
||||||
|
name: Add-in CI
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- master
|
||||||
|
paths:
|
||||||
|
- 'addin/**'
|
||||||
|
- 'docker-compose.yml'
|
||||||
|
- '.forgejo/workflows/addin.yml'
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- 'addin/**'
|
||||||
|
- 'docker-compose.yml'
|
||||||
|
- '.forgejo/workflows/addin.yml'
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-and-test:
|
||||||
|
name: Build and test Word add-in
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 25
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
working-directory: addin
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Setup Node.js
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: '20'
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: npm install --no-fund --no-audit
|
||||||
|
|
||||||
|
- name: Run tests
|
||||||
|
run: npm test -- --runInBand
|
||||||
|
|
||||||
|
- name: Validate manifest
|
||||||
|
run: npm run validate
|
||||||
|
|
||||||
|
- name: Build add-in
|
||||||
|
run: npm run build
|
||||||
50
.forgejo/workflows/backend.yml
Normal file
50
.forgejo/workflows/backend.yml
Normal file
|
|
@ -0,0 +1,50 @@
|
||||||
|
name: Deploy DocEdit Backend CI
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- "backend-*.*.*"
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
env:
|
||||||
|
# Container Registry
|
||||||
|
REGISTRY_URL: ${{ vars.CONTAINER_REGISTRY }}
|
||||||
|
REGISTRY_USERNAME: ${{ vars.CONTAINER_REGISTRY_USERNAME }}
|
||||||
|
REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }}
|
||||||
|
|
||||||
|
# Docker Image
|
||||||
|
WEB_IMAGE_NAME: chamomind/ecourt-note
|
||||||
|
IMAGE_TAG: ${{ github.ref_name }}
|
||||||
|
|
||||||
|
# SSH Deployment
|
||||||
|
DEPLOY_HOST: ${{ vars.SSH_DEPLOY_HOST }}
|
||||||
|
DEPLOY_USER: ${{ vars.SSH_DEPLOY_USER }}
|
||||||
|
|
||||||
|
# Notifications
|
||||||
|
DISCORD_WEBHOOK_URL: ${{ vars.DISCORD_WEBHOOK_URL }}
|
||||||
|
NEXT_PUBLIC_APP_URL: ${{ vars.NEXT_PUBLIC_APP_URL }}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-and-test:
|
||||||
|
name: Build and test backend
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 30
|
||||||
|
env:
|
||||||
|
DOTNET_CLI_TELEMETRY_OPTOUT: '1'
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Setup .NET SDK
|
||||||
|
uses: actions/setup-dotnet@v4
|
||||||
|
with:
|
||||||
|
dotnet-version: '8.0.x'
|
||||||
|
|
||||||
|
- name: Restore solution
|
||||||
|
run: dotnet restore backend/WordVersioning.slnx
|
||||||
|
|
||||||
|
- name: Build solution
|
||||||
|
run: dotnet build backend/WordVersioning.slnx --configuration Release --no-restore
|
||||||
|
|
||||||
|
- name: Run tests
|
||||||
|
run: dotnet test backend/WordVersioning.slnx --configuration Release --no-build --logger "trx;LogFileName=backend-tests.trx"
|
||||||
45
.forgejo/workflows/web.yml
Normal file
45
.forgejo/workflows/web.yml
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
name: Web CI
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- master
|
||||||
|
paths:
|
||||||
|
- 'web/**'
|
||||||
|
- 'docker-compose.yml'
|
||||||
|
- '.forgejo/workflows/web.yml'
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- 'web/**'
|
||||||
|
- 'docker-compose.yml'
|
||||||
|
- '.forgejo/workflows/web.yml'
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-and-test:
|
||||||
|
name: Build and test web app
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 20
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
working-directory: web
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Setup Node.js
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: '20'
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: npm install --no-fund --no-audit
|
||||||
|
|
||||||
|
- name: Run tests
|
||||||
|
run: npm run test
|
||||||
|
|
||||||
|
- name: Build app
|
||||||
|
run: npm run build
|
||||||
Loading…
Add table
Add a link
Reference in a new issue