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
-
Gitea Token: Add a secret named
GITEA_TOKENin your repository settings- Go to: Repository Settings → Secrets → Add Secret
- Name:
GITEA_TOKEN - Value: Your Gitea personal access token with
repoandwrite:packagespermissions
-
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:
# 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 jobGITHUB_REF_NAME: Tag name (e.g., v1.2.3)GITHUB_REPOSITORY: Repository in formatowner/repoGITHUB_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_TOKENsecret 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:
- Edit
.gitea/workflows/go.yml - Test changes by pushing a tag (or use
actlocally for testing) - 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
teaCLI 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.