chore: Remove deprecated Gitea workflows and add new CI/CD configurations
This commit is contained in:
122
.gitea/workflows/README.md
Normal file
122
.gitea/workflows/README.md
Normal file
@@ -0,0 +1,122 @@
|
||||
# SZCI Gitea CI/CD Workflows
|
||||
|
||||
This directory contains Gitea Actions workflows for automated CI/CD of the SZCI project.
|
||||
|
||||
## Workflows
|
||||
|
||||
### 1. CI (`ci.yml`)
|
||||
|
||||
**Trigger:** Push to `master` branch or pull requests
|
||||
|
||||
**Purpose:** Continuous integration checks on every push
|
||||
|
||||
**Jobs:**
|
||||
- **Type Check & Lint** - Validates TypeScript types and code style
|
||||
- **Build Test** - Compiles binary for Linux x64 and tests execution
|
||||
- **Build All Platforms** - Compiles all 5 platform binaries and uploads as artifacts
|
||||
|
||||
**Usage:** Automatically runs on every commit to ensure code quality
|
||||
|
||||
---
|
||||
|
||||
### 2. Release (`release.yml`)
|
||||
|
||||
**Trigger:** Push of version tags (e.g., `v5.0.0`)
|
||||
|
||||
**Purpose:** Creates GitHub releases with pre-compiled binaries
|
||||
|
||||
**Jobs:**
|
||||
1. Validates deno.json version matches git tag
|
||||
2. Compiles binaries for all 5 platforms
|
||||
3. Generates SHA256 checksums
|
||||
4. Creates Gitea release with binaries as assets
|
||||
5. Cleans up old releases (keeps last 3)
|
||||
|
||||
**Usage:**
|
||||
```bash
|
||||
# Update version in deno.json to 6.0.1
|
||||
# Then create and push tag:
|
||||
git tag v6.0.1
|
||||
git push origin v6.0.1
|
||||
```
|
||||
|
||||
**Output:** Release at `https://code.foss.global/ship.zone/szci/releases/tag/v6.0.1`
|
||||
|
||||
---
|
||||
|
||||
### 3. NPM Publish (`npm-publish.yml`)
|
||||
|
||||
**Trigger:** Push of version tags (e.g., `v5.0.0`)
|
||||
|
||||
**Purpose:** Publishes package to npm registry
|
||||
|
||||
**Jobs:**
|
||||
1. Validates deno.json version matches git tag
|
||||
2. Compiles all binaries
|
||||
3. Syncs package.json version
|
||||
4. Creates npm package
|
||||
5. Publishes to npm with access token
|
||||
6. Verifies publication
|
||||
|
||||
**Prerequisites:**
|
||||
- `NPM_TOKEN` must be set in Gitea secrets
|
||||
|
||||
**Usage:** Same as release workflow (automatically triggered by version tags)
|
||||
|
||||
**Output:** Package at `https://www.npmjs.com/package/@ship.zone/szci`
|
||||
|
||||
---
|
||||
|
||||
## Release Process
|
||||
|
||||
To create a new release:
|
||||
|
||||
1. **Update version in deno.json:**
|
||||
```json
|
||||
{
|
||||
"version": "6.0.1"
|
||||
}
|
||||
```
|
||||
|
||||
2. **Commit the version change:**
|
||||
```bash
|
||||
git add deno.json
|
||||
git commit -m "6.0.1"
|
||||
```
|
||||
|
||||
3. **Create and push tag:**
|
||||
```bash
|
||||
git tag v6.0.1
|
||||
git push origin master
|
||||
git push origin v6.0.1
|
||||
```
|
||||
|
||||
4. **Workflows run automatically:**
|
||||
- `release.yml` creates Gitea release with binaries
|
||||
- `npm-publish.yml` publishes to npm
|
||||
|
||||
5. **Verify:**
|
||||
- Check https://code.foss.global/ship.zone/szci/releases
|
||||
- Check https://www.npmjs.com/package/@ship.zone/szci
|
||||
|
||||
---
|
||||
|
||||
## Secrets Required
|
||||
|
||||
Configure these in Gitea repository settings:
|
||||
|
||||
- `GITHUB_TOKEN` - Gitea access token (auto-provided)
|
||||
- `NPM_TOKEN` - npm publish token (must be configured)
|
||||
|
||||
---
|
||||
|
||||
## Binary Artifacts
|
||||
|
||||
Each workflow produces binaries for:
|
||||
- Linux x86_64
|
||||
- Linux ARM64
|
||||
- macOS x86_64
|
||||
- macOS ARM64
|
||||
- Windows x86_64
|
||||
|
||||
Total size per release: ~4GB (5 binaries × ~800MB each)
|
||||
Reference in New Issue
Block a user