mod/main.go
Jacob Schmidt 034135baeb
All checks were successful
Build / Build (push) Successful in 53s
Initial Repo Setup
2024-10-20 18:29:16 -05:00

68 lines
1.8 KiB
Go

package main
import (
"fmt"
"log"
"os"
"path/filepath"
"code.gitea.io/sdk/gitea"
)
func main() {
client, err := createGiteaClient()
if err != nil {
log.Fatalf("Error creating Gitea client: %v", err)
}
version := os.Getenv("VERSION")
if version == "" {
log.Fatalf("VERSION environment variable is not set")
}
repoOwner := "IDSolutions"
repoName := "mod"
release, err := createRelease(client, repoOwner, repoName, version)
if err != nil {
log.Fatalf("Error creating release: %v", err)
}
// Construct the filename using the version
artifactFilename := fmt.Sprintf("pmcs-%s.zip", version)
artifactPath := filepath.Join("releases", artifactFilename)
if err := uploadArtifact(client, repoOwner, repoName, release.ID, artifactPath); err != nil {
log.Fatalf("Error uploading release asset: %v", err)
}
fmt.Println("Release created and artifact uploaded successfully!")
}
func createGiteaClient() (*gitea.Client, error) {
token := os.Getenv("GITHUB_TOKEN")
if token == "" {
return nil, fmt.Errorf("GITHUB_TOKEN environment variable is not set")
}
return gitea.NewClient("https://gitea.innovativedevsolutions.org", gitea.SetToken(token))
}
func createRelease(client *gitea.Client, owner, repo, version string) (*gitea.Release, error) {
release, _, err := client.CreateRelease(owner, repo, gitea.CreateReleaseOption{
TagName: version,
Title: fmt.Sprintf("PMC Simulator 3.0 Mod v%s", version),
Note: fmt.Sprintf("Release notes for version %s", version),
})
return release, err
}
func uploadArtifact(client *gitea.Client, owner, repo string, releaseID int64, artifactPath string) error {
file, err := os.Open(artifactPath)
if err != nil {
return fmt.Errorf("error opening artifact file: %w", err)
}
defer file.Close()
_, _, err = client.CreateReleaseAttachment(owner, repo, releaseID, file, filepath.Base(artifactPath))
return err
}