3 changed files with 151 additions and 33 deletions
@ -0,0 +1,84 @@ |
|||||||
|
# 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. |
||||||
Loading…
Reference in new issue