edbras
edbras

Reputation: 4404

How to use the postgres db on the windows-latest agent used in the azure pipeline?

I have a java maven project that I am building with an azure pipeline with as host "windows-latest" as it contains the correct java 13 version. However, for the integration tests, I need a postgres db and the "windows-latest" agent contains a postgres db, see: link. But how can I use this? I tried to use it by including it's serviceName in the Maven task as service:

services:
   postgres: postgresql-x64-13

But then I get the error it can not find a service by that name. I tried defining the db properties through env settings (see yml below), and then it shows the error:

Caused by: java.net.ConnectException: Connection refused

I also tried running it through a script task through the docker-compose.yml in the root of the project that I use during development, but docker-compose throws an error saying it can't find the compose file, I also doubt this the correct way.

So can I use the postgres db on the windows agent? and how?

My azure pipeline snippet:

    variables:
    MAVEN_CACHE_FOLDER: $(Pipeline.Workspace)/.m2/repository
    MAVEN_OPTS: "-Dmaven.repo.local=$(MAVEN_CACHE_FOLDER)"
    application_name: clearsky
    service_name: backend
    mygetUsername: myserUsername
    mygetPassword: mytoken
    SPRING_DATASOURCE_URL: jdbc:postgresql://localhost:5432/postgres
    SPRING_DATASOURCE_USER: postgres
    SPRING_DATASOURCE_PASSWORD: root

stages:
    - stage: create_artifact
      displayName: Create artifact
      jobs:
          - job: build
            displayName: Build, test and publish artifact
            steps:
                - task: Maven@3
                  name: maven_package
                  displayName: Maven package
                  inputs:
                      goals: "package"
                      mavenPomFile: "backend/pom.xml"
                      options: '--settings backend/.mvn/settings.xml -DmygetUsername=$(mygetUsername) -DmygetPassword=$(mygetPassword)'
                      mavenOptions: "-Xmx3072m $(MAVEN_OPTS)"
                      javaHomeOption: "JDKVersion"
                      jdkVersionOption: "1.13"
                      mavenAuthenticateFeed: true

Upvotes: 1

Views: 957

Answers (1)

Kevin Lu-MSFT
Kevin Lu-MSFT

Reputation: 35454

In Azure Devops Windows agen, the postgresql is disabled/stop by default.

Here is the configuration doc.

Property    Value
ServiceName postgresql-x64-13
Version 13.2
ServiceStatus   Stopped
ServiceStartType    Disabled

You could try the following command to start the postgresql.

"C:\Program Files\PostgreSQL\13\bin\pg_ctl.exe" start -D "C:\Program Files\PostgreSQL\13\data" -w

Upvotes: 2

Related Questions