@@ -652,27 +652,28 @@ func (b *Builder) getLastBuildJob() (*database.ProvisionerJob, error) {
652
652
}
653
653
654
654
func (b * Builder ) getProvisionerTags () (map [string ]string , error ) {
655
- // Step 1: Fetch required data
656
- workspaceTags , err := b .getTemplateVersionWorkspaceTags ()
657
- if err != nil {
658
- return nil , BuildError {http .StatusInternalServerError , "failed to fetch template version workspace tags" , err }
659
- }
660
- parameterNames , parameterValues , err := b .getParameters ()
661
- if err != nil {
662
- return nil , err // already wrapped BuildError
663
- }
655
+ // Step 1: Mutate template version tags
664
656
templateVersionJob , err := b .getTemplateVersionJob ()
665
657
if err != nil {
666
658
return nil , BuildError {http .StatusInternalServerError , "failed to fetch template version job" , err }
667
659
}
668
660
annotationTags := provisionersdk .MutateTags (b .workspace .OwnerID , templateVersionJob .Tags )
669
661
670
- // Step 2: Evaluate provisioner tags
671
662
tags := map [string ]string {}
672
663
for name , value := range annotationTags {
673
664
tags [name ] = value
674
665
}
675
666
667
+ // Step 2: Mutate workspace tags
668
+ workspaceTags , err := b .getTemplateVersionWorkspaceTags ()
669
+ if err != nil {
670
+ return nil , BuildError {http .StatusInternalServerError , "failed to fetch template version workspace tags" , err }
671
+ }
672
+ parameterNames , parameterValues , err := b .getParameters ()
673
+ if err != nil {
674
+ return nil , err // already wrapped BuildError
675
+ }
676
+
676
677
evalCtx := buildParametersEvalContext (parameterNames , parameterValues )
677
678
for _ , workspaceTag := range workspaceTags {
678
679
expr , diags := hclsyntax .ParseExpression ([]byte (workspaceTag .Value ), "expression.hcl" , hcl .InitialPos )
0 commit comments