feat: Split CI/CD into three focused workflows
Replaced the monolithic pipeline with three dedicated workflows: ci.yml (build on every push), cd.yml (manual deploy to staging or prod), and nightly.yml (scheduled build and deploy). This makes it easier to trigger deploys independently of builds and to diagnose failures.
This commit is contained in:
parent
cf84d5f783
commit
e54ca3de89
4 changed files with 75 additions and 22 deletions
25
.forgejo/workflows/cd.yml
Normal file
25
.forgejo/workflows/cd.yml
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
name: CD
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
target:
|
||||||
|
description: "Deployment target"
|
||||||
|
required: true
|
||||||
|
type: choice
|
||||||
|
options:
|
||||||
|
- local
|
||||||
|
- staging
|
||||||
|
- prod
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
deploy:
|
||||||
|
runs-on: self-hosted
|
||||||
|
steps:
|
||||||
|
- name: Download artifact
|
||||||
|
uses: actions/download-artifact@v3
|
||||||
|
with:
|
||||||
|
name: site-${{ github.sha }}
|
||||||
|
path: blog/
|
||||||
|
- name: Deploy
|
||||||
|
run: nix shell nixpkgs#rsync --command ./deploy.sh ${{ inputs.target }}
|
||||||
19
.forgejo/workflows/ci.yml
Normal file
19
.forgejo/workflows/ci.yml
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
name: CI
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
pull_request:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: self-hosted
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Build
|
||||||
|
run: nix shell nixpkgs#mdbook --command ./deploy.sh build
|
||||||
|
- name: Upload artifact
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: site-${{ github.sha }}
|
||||||
|
path: blog/
|
||||||
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
name: Build and Deploy
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
- develop
|
|
||||||
schedule:
|
|
||||||
- cron: '0 2 * * *'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
deploy:
|
|
||||||
runs-on: self-hosted
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Build
|
|
||||||
run: nix shell nixpkgs#mdbook --command ./deploy.sh build
|
|
||||||
|
|
||||||
- name: Deploy
|
|
||||||
run: nix shell nixpkgs#rsync --command ./deploy.sh local
|
|
||||||
31
.forgejo/workflows/nightly.yml
Normal file
31
.forgejo/workflows/nightly.yml
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
name: Nightly
|
||||||
|
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: '0 2 * * *'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: self-hosted
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Build
|
||||||
|
run: nix shell nixpkgs#mdbook --command ./deploy.sh build
|
||||||
|
- name: Upload artifact
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: site-${{ github.sha }}
|
||||||
|
path: blog/
|
||||||
|
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
needs: build
|
||||||
|
runs-on: self-hosted
|
||||||
|
steps:
|
||||||
|
- name: Download artifact
|
||||||
|
uses: actions/download-artifact@v3
|
||||||
|
with:
|
||||||
|
name: site-${{ github.sha }}
|
||||||
|
path: blog/
|
||||||
|
- name: Deploy
|
||||||
|
run: nix shell nixpkgs#rsync --command ./deploy.sh local
|
||||||
Loading…
Add table
Add a link
Reference in a new issue