@@ -14,7 +14,63 @@ permissions:
1414 contents : write
1515
1616jobs :
17+ pre-release-tests :
18+ name : Run tests before release
19+ runs-on : ubuntu-latest
20+ env :
21+ test_stacks_directory : test_tf_stacks # root directory for test stacks
22+ pre_release_tests : provider_only # directory name for pre-release tests
23+ permissions :
24+ contents : read
25+
26+ steps :
27+ - name : Checkout
28+ uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
29+
30+ - name : Setup Go
31+ uses : actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00 # v6.0.0
32+ with :
33+ go-version-file : go.mod
34+ cache : true
35+
36+ - name : Build provider
37+ run : go build -o terraform-provider-github
38+
39+ - name : Setup dev overrides
40+ run : |
41+ ROOT_DIR=$(pwd)
42+ cat > ~/.terraformrc << EOF
43+ provider_installation {
44+ dev_overrides {
45+ "integrations/github" = "${ROOT_DIR}"
46+ }
47+ direct {}
48+ }
49+ EOF
50+
51+ - name : Verify dev overrides setup
52+ run : cat ~/.terraformrc
53+
54+ - name : Setup Terraform
55+ uses : hashicorp/setup-terraform@b9cd54a3c349d3f38e8881555d616ced269862dd # v3.1.2
56+ with :
57+ terraform_version : 1.x
58+
59+ - name : Check Terraform version
60+ run : terraform version
61+
62+ - name : Terraform init
63+ continue-on-error : true # continue even if init fails
64+ run : terraform -chdir=./${{ env.test_stacks_directory }}/${{ env.pre_release_tests }} init
65+
66+ - name : Terraform validate
67+ run : terraform -chdir=./${{ env.test_stacks_directory }}/${{ env.pre_release_tests }} validate
68+
69+ - name : Clean up
70+ run : rm -f ~/.terraformrc terraform-provider-github
71+
1772 goreleaser :
73+ needs : [ pre-release-tests ] # runs only if pre-release tests pass
1874 runs-on : ubuntu-latest
1975 steps :
2076 - uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
0 commit comments