85 lines
2.8 KiB
Markdown
85 lines
2.8 KiB
Markdown
# Gitea Actions Setup
|
|
|
|
This directory contains workflows for Gitea Actions, which is a self-hosted CI/CD system compatible with GitHub Actions syntax.
|
|
|
|
## Workflow: go.yml
|
|
|
|
The `go.yml` workflow handles building, testing, and releasing the ORLY relay when version tags are pushed.
|
|
|
|
### Features
|
|
|
|
- **No external dependencies**: Uses only inline shell commands (no actions from GitHub)
|
|
- **Pure Go builds**: Uses CGO_ENABLED=0 with purego for secp256k1
|
|
- **Automated releases**: Creates Gitea releases with binaries and checksums
|
|
- **Tests included**: Runs the full test suite before building releases
|
|
|
|
### Prerequisites
|
|
|
|
1. **Gitea Token**: Add a secret named `GITEA_TOKEN` in your repository settings
|
|
- Go to: Repository Settings → Secrets → Add Secret
|
|
- Name: `GITEA_TOKEN`
|
|
- Value: Your Gitea personal access token with `repo` and `write:packages` permissions
|
|
|
|
2. **Runner Configuration**: Ensure your Gitea Actions runner is properly configured
|
|
- The runner should have access to pull Docker images
|
|
- Ubuntu-latest image should be available
|
|
|
|
### Usage
|
|
|
|
To create a new release:
|
|
|
|
```bash
|
|
# 1. Update version in pkg/version/version file
|
|
echo "v0.29.4" > pkg/version/version
|
|
|
|
# 2. Commit the version change
|
|
git add pkg/version/version
|
|
git commit -m "bump to v0.29.4"
|
|
|
|
# 3. Create and push the tag
|
|
git tag v0.29.4
|
|
git push origin v0.29.4
|
|
|
|
# 4. The workflow will automatically:
|
|
# - Build the binary
|
|
# - Run tests
|
|
# - Create a release on your Gitea instance
|
|
# - Upload the binary and checksums
|
|
```
|
|
|
|
### Environment Variables
|
|
|
|
The workflow uses standard Gitea Actions environment variables:
|
|
|
|
- `GITHUB_WORKSPACE`: Working directory for the job
|
|
- `GITHUB_REF_NAME`: Tag name (e.g., v1.2.3)
|
|
- `GITHUB_REPOSITORY`: Repository in format `owner/repo`
|
|
- `GITHUB_SERVER_URL`: Your Gitea instance URL (e.g., https://git.nostrdev.com)
|
|
|
|
### Troubleshooting
|
|
|
|
**Issue**: Workflow fails to clone repository
|
|
- **Solution**: Check that the repository is accessible without authentication, or configure runner credentials
|
|
|
|
**Issue**: Cannot create release
|
|
- **Solution**: Verify `GITEA_TOKEN` secret is set correctly with appropriate permissions
|
|
|
|
**Issue**: Go version not found
|
|
- **Solution**: The workflow downloads Go 1.25.0 directly from go.dev, ensure the runner has internet access
|
|
|
|
### Customization
|
|
|
|
To modify the workflow:
|
|
|
|
1. Edit `.gitea/workflows/go.yml`
|
|
2. Test changes by pushing a tag (or use `act` locally for testing)
|
|
3. Monitor the Actions tab in your Gitea repository for results
|
|
|
|
## Differences from GitHub Actions
|
|
|
|
- **Action dependencies**: This workflow doesn't use external actions (like `actions/checkout@v4`) to avoid GitHub dependency
|
|
- **Release creation**: Uses `tea` CLI instead of GitHub's release action
|
|
- **Inline commands**: All setup and build steps are done with shell scripts
|
|
|
|
This makes the workflow completely self-contained and independent of external services.
|