Skip to content

Commit 03b2b04

Browse files
authored
Merge pull request #58 from roidelapluie/acct
Run ACC tests
2 parents dc2f1c9 + 45ef5bf commit 03b2b04

File tree

3 files changed

+52
-0
lines changed

3 files changed

+52
-0
lines changed

.travis.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ services:
55
language: go
66
go:
77
- "1.11.x"
8+
env:
9+
GITLAB_BASE_URL: http://127.0.0.1:8080/api/v4
10+
GITLAB_TOKEN: ACCTEST
811

912
install:
1013
# This script is used by the Travis build to install a cookie for
@@ -13,9 +16,11 @@ install:
1316
# See: https://github.com/golang/go/issues/12933
1417
- bash scripts/gogetcookie.sh
1518
- go get github.com/kardianos/govendor
19+
- bash scripts/start-gitlab.sh
1620

1721
script:
1822
- make test
23+
- make testacc
1924
- make vendor-status
2025
- make vet
2126
- make website-test

gitlab/resource_gitlab_group.go

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ package gitlab
33
import (
44
"fmt"
55
"log"
6+
"time"
67

8+
"github.com/hashicorp/terraform/helper/resource"
79
"github.com/hashicorp/terraform/helper/schema"
810
"github.com/hashicorp/terraform/helper/validation"
911
gitlab "github.com/xanzy/go-gitlab"
@@ -167,5 +169,35 @@ func resourceGitlabGroupDelete(d *schema.ResourceData, meta interface{}) error {
167169
log.Printf("[DEBUG] Delete gitlab group %s", d.Id())
168170

169171
_, err := client.Groups.DeleteGroup(d.Id())
172+
if err != nil {
173+
return fmt.Errorf("error deleting group %s: %s", d.Id(), err)
174+
}
175+
176+
// Wait for the group to be deleted.
177+
// Deleting a group in gitlab is async.
178+
stateConf := &resource.StateChangeConf{
179+
Pending: []string{"Deleting"},
180+
Target: []string{"Deleted"},
181+
Refresh: func() (interface{}, string, error) {
182+
out, response, err := client.Groups.GetGroup(d.Id())
183+
if err != nil {
184+
if response.StatusCode == 404 {
185+
return out, "Deleted", nil
186+
}
187+
log.Printf("[ERROR] Received error: %#v", err)
188+
return out, "Error", err
189+
}
190+
return out, "Deleting", nil
191+
},
192+
193+
Timeout: 10 * time.Minute,
194+
MinTimeout: 3 * time.Second,
195+
Delay: 5 * time.Second,
196+
}
197+
198+
_, err = stateConf.WaitForState()
199+
if err != nil {
200+
return fmt.Errorf("error waiting for group (%s) to become deleted: %s", d.Id(), err)
201+
}
170202
return err
171203
}

scripts/start-gitlab.sh

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#!/bin/bash -e
2+
echo "Starting gitlab container..."
3+
docker run -d -e GITLAB_ROOT_PASSWORD=adminadmin --rm -p 127.0.0.1:8080:80 --name gitlab gitlab/gitlab-ce
4+
echo -n "Waiting for gitlab to be ready "
5+
i=1
6+
until wget -t 1 127.0.0.1:8080 -O /dev/null -q
7+
do
8+
sleep 1
9+
echo -n .
10+
if [[ $((i%3)) == 0 ]]; then echo -n ' '; fi
11+
let i++
12+
done
13+
echo
14+
echo "Creating access token"
15+
echo 'PersonalAccessToken.create(user_id: 1, scopes: [:api, :read_user], name: :terraform, token: :ACCTEST).save!' | docker exec -i gitlab gitlab-rails console

0 commit comments

Comments
 (0)