|  |  | @ -0,0 +1,59 @@ | 
			
		
	
		
			
				
					|  |  |  | name: S3 IAM Keycloak Integration | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | on: | 
			
		
	
		
			
				
					|  |  |  |   workflow_dispatch: | 
			
		
	
		
			
				
					|  |  |  |   pull_request: | 
			
		
	
		
			
				
					|  |  |  |     paths: | 
			
		
	
		
			
				
					|  |  |  |       - 'test/s3/iam/**' | 
			
		
	
		
			
				
					|  |  |  |       - 'weed/**' | 
			
		
	
		
			
				
					|  |  |  |       - 'go.mod' | 
			
		
	
		
			
				
					|  |  |  |       - 'go.sum' | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | jobs: | 
			
		
	
		
			
				
					|  |  |  |   keycloak-integration: | 
			
		
	
		
			
				
					|  |  |  |     runs-on: ubuntu-latest | 
			
		
	
		
			
				
					|  |  |  |     timeout-minutes: 60 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     steps: | 
			
		
	
		
			
				
					|  |  |  |       - name: Checkout | 
			
		
	
		
			
				
					|  |  |  |         uses: actions/checkout@v4 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |       - name: Setup Go | 
			
		
	
		
			
				
					|  |  |  |         uses: actions/setup-go@v5 | 
			
		
	
		
			
				
					|  |  |  |         with: | 
			
		
	
		
			
				
					|  |  |  |           go-version-file: go.mod | 
			
		
	
		
			
				
					|  |  |  |           cache: true | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |       - name: Install dependencies | 
			
		
	
		
			
				
					|  |  |  |         run: sudo apt-get update -y && sudo apt-get install -y jq | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |       - name: Build weed binary | 
			
		
	
		
			
				
					|  |  |  |         run: | | 
			
		
	
		
			
				
					|  |  |  |           mkdir -p "$HOME/go/bin" | 
			
		
	
		
			
				
					|  |  |  |           go build -o "$HOME/go/bin/weed" ./weed | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |       - name: Configure Keycloak (repo script only) | 
			
		
	
		
			
				
					|  |  |  |         env: | 
			
		
	
		
			
				
					|  |  |  |           PATH: ${{ env.PATH }}:$HOME/go/bin | 
			
		
	
		
			
				
					|  |  |  |         run: | | 
			
		
	
		
			
				
					|  |  |  |           bash test/s3/iam/setup_keycloak.sh | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |       - name: Start SeaweedFS services | 
			
		
	
		
			
				
					|  |  |  |         env: | 
			
		
	
		
			
				
					|  |  |  |           WEED_BINARY: ${{ github.workspace }}/weed | 
			
		
	
		
			
				
					|  |  |  |         run: | | 
			
		
	
		
			
				
					|  |  |  |           export WEED_BINARY="$HOME/go/bin/weed" | 
			
		
	
		
			
				
					|  |  |  |           make -C test/s3/iam start-services wait-for-services | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |       - name: Run Keycloak integration tests | 
			
		
	
		
			
				
					|  |  |  |         env: | 
			
		
	
		
			
				
					|  |  |  |           KEYCLOAK_URL: http://localhost:8080 | 
			
		
	
		
			
				
					|  |  |  |         run: | | 
			
		
	
		
			
				
					|  |  |  |           go test -v -timeout 15m -run "TestKeycloak" ./... | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |       - name: Stop services | 
			
		
	
		
			
				
					|  |  |  |         if: always() | 
			
		
	
		
			
				
					|  |  |  |         run: | | 
			
		
	
		
			
				
					|  |  |  |           make -C test/s3/iam stop-services | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 
 |