/ config / providers / vercel.go
vercel.go
  1  package providers
  2  
  3  import (
  4  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
  5  	"github.com/pulumiverse/pulumi-vercel/sdk/v3/go/vercel"
  6  )
  7  
  8  func Vercel(ctx *pulumi.Context, enableVercel bool) error {
  9  	if !enableVercel {
 10  		return nil
 11  	}
 12  
 13  	_, err := vercel.NewProject(ctx, "fumadocs-payloadcms", &vercel.ProjectArgs{
 14  		AutoAssignCustomDomains:                       pulumi.Bool(true),
 15  		AutomaticallyExposeSystemEnvironmentVariables: pulumi.Bool(true),
 16  		BuildCommand:      pulumi.String("pnpm build"),
 17  		Framework:         pulumi.String("nextjs"),
 18  		GitForkProtection: pulumi.Bool(true),
 19  		GitRepository: &vercel.ProjectGitRepositoryArgs{
 20  			ProductionBranch: pulumi.String("main"),
 21  			Repo:             pulumi.String("MFarabi619/fumadocs-payloadcms"),
 22  			Type:             pulumi.String("github"),
 23  		},
 24  		InstallCommand: pulumi.String("pnpm i"),
 25  		Name:           pulumi.String("fumadocs-payloadcms"),
 26  		NodeVersion:    pulumi.String("22.x"),
 27  		OidcTokenConfig: &vercel.ProjectOidcTokenConfigArgs{
 28  			Enabled:    pulumi.Bool(true),
 29  			IssuerMode: pulumi.String("team"),
 30  		},
 31  		PrioritiseProductionBuilds: pulumi.Bool(true),
 32  		VercelAuthentication: &vercel.ProjectVercelAuthenticationArgs{
 33  			DeploymentType: pulumi.String("standard_protection_new"),
 34  		},
 35  	}, pulumi.Protect(true))
 36  	if err != nil {
 37  		return err
 38  	}
 39  
 40  	_, err = vercel.NewProject(ctx, "lunar-quake", &vercel.ProjectArgs{
 41  		AutoAssignCustomDomains:                       pulumi.Bool(true),
 42  		AutomaticallyExposeSystemEnvironmentVariables: pulumi.Bool(true),
 43  		Framework:         pulumi.String("nextjs"),
 44  		GitForkProtection: pulumi.Bool(true),
 45  		GitRepository: &vercel.ProjectGitRepositoryArgs{
 46  			ProductionBranch: pulumi.String("main"),
 47  			Repo:             pulumi.String("MFarabi619/LunarQuake"),
 48  			Type:             pulumi.String("github"),
 49  		},
 50  		Name:        pulumi.String("lunar-quake"),
 51  		NodeVersion: pulumi.String("18.x"),
 52  		OidcTokenConfig: &vercel.ProjectOidcTokenConfigArgs{
 53  			Enabled:    pulumi.Bool(true),
 54  			IssuerMode: pulumi.String("team"),
 55  		},
 56  		ResourceConfig: &vercel.ProjectResourceConfigArgs{
 57  			FunctionDefaultCpuType: pulumi.String("standard_legacy"),
 58  			FunctionDefaultRegions: pulumi.StringArray{
 59  				pulumi.String("iad1"),
 60  			},
 61  		},
 62  		RootDirectory: pulumi.String("frontend"),
 63  		VercelAuthentication: &vercel.ProjectVercelAuthenticationArgs{
 64  			DeploymentType: pulumi.String("none"),
 65  		},
 66  	}, pulumi.Protect(false))
 67  
 68  	if err != nil {
 69  		return err
 70  	}
 71  	_, err = vercel.NewProject(ctx, "personal-portfolio-website", &vercel.ProjectArgs{
 72  		AutomaticallyExposeSystemEnvironmentVariables: pulumi.Bool(true),
 73  		Framework:         pulumi.String("vite"),
 74  		GitForkProtection: pulumi.Bool(true),
 75  		GitRepository: &vercel.ProjectGitRepositoryArgs{
 76  			ProductionBranch: pulumi.String("main"),
 77  			Repo:             pulumi.String("MFarabi619/personal-portfolio-website"),
 78  			Type:             pulumi.String("github"),
 79  		},
 80  		Name:        pulumi.String("personal-portfolio-website"),
 81  		NodeVersion: pulumi.String("18.x"),
 82  		OidcTokenConfig: &vercel.ProjectOidcTokenConfigArgs{
 83  			Enabled:    pulumi.Bool(true),
 84  			IssuerMode: pulumi.String("team"),
 85  		},
 86  		VercelAuthentication: &vercel.ProjectVercelAuthenticationArgs{
 87  			DeploymentType: pulumi.String("none"),
 88  		},
 89  	}, pulumi.Protect(false))
 90  
 91  	if err != nil {
 92  		return err
 93  	}
 94  
 95  	_, err = vercel.NewProjectDomain(ctx, "personal-portfolio-website", &vercel.ProjectDomainArgs{
 96  		Domain:    pulumi.String("mfarabi.dev"),
 97  		ProjectId: pulumi.String("prj_LCGEM3EiR0KuH3KOtOSz6zm8JL9D"),
 98  	}, pulumi.Protect(false))
 99  	if err != nil {
100  		return err
101  	}
102  
103  	_, err = vercel.NewProjectDomain(ctx, "2023.mfarabi.dev", &vercel.ProjectDomainArgs{
104  		Domain:    pulumi.String("2023.mfarabi.dev"),
105  		ProjectId: pulumi.String("prj_LCGEM3EiR0KuH3KOtOSz6zm8JL9D"),
106  	}, pulumi.Protect(false))
107  	if err != nil {
108  		return err
109  	}
110  
111  	_, err = vercel.NewProjectDomain(ctx, "www.mfarabi.dev", &vercel.ProjectDomainArgs{
112  		Domain:    pulumi.String("www.mfarabi.dev"),
113  		ProjectId: pulumi.String("prj_LCGEM3EiR0KuH3KOtOSz6zm8JL9D"),
114  	}, pulumi.Protect(false))
115  	if err != nil {
116  		return err
117  	}
118  
119  	_, err = vercel.NewProject(ctx, "github-readme-stats", &vercel.ProjectArgs{
120  		AutomaticallyExposeSystemEnvironmentVariables: pulumi.Bool(true),
121  		GitForkProtection: pulumi.Bool(true),
122  		GitRepository: &vercel.ProjectGitRepositoryArgs{
123  			ProductionBranch: pulumi.String("master"),
124  			Repo:             pulumi.String("MFarabi619/github-readme-stats"),
125  			Type:             pulumi.String("github"),
126  		},
127  		Name:        pulumi.String("github-readme-stats"),
128  		NodeVersion: pulumi.String("22.x"),
129  		OidcTokenConfig: &vercel.ProjectOidcTokenConfigArgs{
130  			Enabled:    pulumi.Bool(true),
131  			IssuerMode: pulumi.String("team"),
132  		},
133  		VercelAuthentication: &vercel.ProjectVercelAuthenticationArgs{
134  			DeploymentType: pulumi.String("none"),
135  		},
136  	}, pulumi.Protect(false))
137  
138  	if err != nil {
139  		return err
140  	}
141  
142  	_, err = vercel.NewProject(ctx, "github-readme-streak-stats-vercel", &vercel.ProjectArgs{
143  		AutoAssignCustomDomains:                       pulumi.Bool(true),
144  		AutomaticallyExposeSystemEnvironmentVariables: pulumi.Bool(true),
145  		GitForkProtection:                             pulumi.Bool(true),
146  		GitRepository: &vercel.ProjectGitRepositoryArgs{
147  			ProductionBranch: pulumi.String("main"),
148  			Repo:             pulumi.String("MFarabi619/github-readme-streak-stats-vercel"),
149  			Type:             pulumi.String("github"),
150  		},
151  		Name:        pulumi.String("github-readme-streak-stats-vercel"),
152  		NodeVersion: pulumi.String("18.x"),
153  		OidcTokenConfig: &vercel.ProjectOidcTokenConfigArgs{
154  			Enabled:    pulumi.Bool(true),
155  			IssuerMode: pulumi.String("team"),
156  		},
157  		VercelAuthentication: &vercel.ProjectVercelAuthenticationArgs{
158  			DeploymentType: pulumi.String("none"),
159  		},
160  	}, pulumi.Protect(false))
161  
162  	if err != nil {
163  		return err
164  	}
165  
166  	return err
167  }