mirror of
				https://gitea.com/actions/setup-java.git
				synced 2025-11-02 07:47:06 +00:00 
			
		
		
		
	* eat: bump to use node20 runtime, actions/checkout to v4 * docs: update version of setup-java in documentation and e2e tests --------- Co-authored-by: Ivan Zosimov <ivanzosimov@github.com>
		
			
				
	
	
		
			154 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			154 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
name: Validate publishing functionality
 | 
						|
 | 
						|
on:
 | 
						|
  push:
 | 
						|
    branches:
 | 
						|
      - main
 | 
						|
      - releases/*
 | 
						|
    paths-ignore:
 | 
						|
      - '**.md'
 | 
						|
  pull_request:
 | 
						|
    paths-ignore:
 | 
						|
      - '**.md'
 | 
						|
 | 
						|
defaults:
 | 
						|
  run:
 | 
						|
    shell: pwsh
 | 
						|
 | 
						|
jobs:
 | 
						|
  setup-java-publishing:
 | 
						|
    name: Validate settings.xml
 | 
						|
    runs-on: ${{ matrix.os }}
 | 
						|
    strategy:
 | 
						|
      fail-fast: false
 | 
						|
      matrix:
 | 
						|
        os: [macos-latest, windows-latest, ubuntu-latest]
 | 
						|
    steps:
 | 
						|
      - name: Checkout
 | 
						|
        uses: actions/checkout@v4
 | 
						|
      - name: setup-java
 | 
						|
        uses: ./
 | 
						|
        id: setup-java
 | 
						|
        with:
 | 
						|
          distribution: 'adopt'
 | 
						|
          java-version: '11'
 | 
						|
          server-id: maven
 | 
						|
          server-username: MAVEN_USERNAME
 | 
						|
          server-password: MAVEN_CENTRAL_TOKEN
 | 
						|
          gpg-passphrase: MAVEN_GPG_PASSPHRASE
 | 
						|
      - name: Validate settings.xml
 | 
						|
        run: |
 | 
						|
          $xmlPath = Join-Path $HOME ".m2" "settings.xml"
 | 
						|
          Get-Content $xmlPath | ForEach-Object { Write-Host $_ }
 | 
						|
 | 
						|
          [xml]$xml = Get-Content $xmlPath
 | 
						|
          $servers = $xml.settings.servers.server
 | 
						|
          if (($servers[0].id -ne 'maven') -or ($servers[0].username -ne '${env.MAVEN_USERNAME}') -or ($servers[0].password -ne '${env.MAVEN_CENTRAL_TOKEN}')) {
 | 
						|
            throw "Generated XML file is incorrect"
 | 
						|
          }
 | 
						|
 | 
						|
          if (($servers[1].id -ne 'gpg.passphrase') -or ($servers[1].passphrase -ne '${env.MAVEN_GPG_PASSPHRASE}')) {
 | 
						|
            throw "Generated XML file is incorrect"
 | 
						|
          }
 | 
						|
 | 
						|
  test-publishing-overwrite:
 | 
						|
    name: settings.xml is overwritten if flag is true
 | 
						|
    runs-on: ${{ matrix.os }}
 | 
						|
    strategy:
 | 
						|
      fail-fast: false
 | 
						|
      matrix:
 | 
						|
        os: [macos-latest, windows-latest, ubuntu-latest]
 | 
						|
    steps:
 | 
						|
      - name: Checkout
 | 
						|
        uses: actions/checkout@v4
 | 
						|
      - name: Create fake settings.xml
 | 
						|
        run: |
 | 
						|
          $xmlDirectory = Join-Path $HOME ".m2"
 | 
						|
          $xmlPath = Join-Path $xmlDirectory "settings.xml"
 | 
						|
          New-Item -Path $xmlDirectory -ItemType Directory
 | 
						|
          Set-Content -Path $xmlPath -Value "Fake_XML"
 | 
						|
      - name: setup-java
 | 
						|
        uses: ./
 | 
						|
        id: setup-java
 | 
						|
        with:
 | 
						|
          distribution: 'adopt'
 | 
						|
          java-version: '11'
 | 
						|
          server-id: maven
 | 
						|
          server-username: MAVEN_USERNAME
 | 
						|
          server-password: MAVEN_CENTRAL_TOKEN
 | 
						|
          gpg-passphrase: MAVEN_GPG_PASSPHRASE
 | 
						|
      - name: Validate settings.xml is overwritten
 | 
						|
        run: |
 | 
						|
          $xmlPath = Join-Path $HOME ".m2" "settings.xml"
 | 
						|
          Get-Content $xmlPath | ForEach-Object { Write-Host $_ }
 | 
						|
 | 
						|
          $content = Get-Content $xmlPath -Raw
 | 
						|
          if ($content -notlike '*maven*') {
 | 
						|
            throw "settings.xml file is not overwritten"
 | 
						|
          }
 | 
						|
 | 
						|
  test-publishing-skip-overwrite:
 | 
						|
    name: settings.xml is not overwritten if flag is false
 | 
						|
    runs-on: ${{ matrix.os }}
 | 
						|
    strategy:
 | 
						|
      fail-fast: false
 | 
						|
      matrix:
 | 
						|
        os: [macos-latest, windows-latest, ubuntu-latest]
 | 
						|
    steps:
 | 
						|
      - name: Checkout
 | 
						|
        uses: actions/checkout@v4
 | 
						|
      - name: Create fake settings.xml
 | 
						|
        run: |
 | 
						|
          $xmlDirectory = Join-Path $HOME ".m2"
 | 
						|
          $xmlPath = Join-Path $xmlDirectory "settings.xml"
 | 
						|
          New-Item -Path $xmlDirectory -ItemType Directory
 | 
						|
          Set-Content -Path $xmlPath -Value "Fake_XML"
 | 
						|
      - name: setup-java
 | 
						|
        uses: ./
 | 
						|
        id: setup-java
 | 
						|
        with:
 | 
						|
          distribution: 'adopt'
 | 
						|
          java-version: '11'
 | 
						|
          server-id: maven
 | 
						|
          server-username: MAVEN_USERNAME
 | 
						|
          server-password: MAVEN_CENTRAL_TOKEN
 | 
						|
          overwrite-settings: false
 | 
						|
          gpg-passphrase: MAVEN_GPG_PASSPHRASE
 | 
						|
      - name: Validate that settings.xml is not overwritten
 | 
						|
        run: |
 | 
						|
          $xmlPath = Join-Path $HOME ".m2" "settings.xml"
 | 
						|
          $content = Get-Content -Path $xmlPath -Raw
 | 
						|
          Write-Host $content
 | 
						|
 | 
						|
          if ($content -notlike "*Fake_XML*") {
 | 
						|
            throw "settings.xml file was overwritten but it should not be"
 | 
						|
          }
 | 
						|
 | 
						|
  test-publishing-custom-location:
 | 
						|
    name: settings.xml in custom location
 | 
						|
    runs-on: ${{ matrix.os }}
 | 
						|
    strategy:
 | 
						|
      fail-fast: false
 | 
						|
      matrix:
 | 
						|
        os: [macos-latest, windows-latest, ubuntu-latest]
 | 
						|
    steps:
 | 
						|
      - name: Checkout
 | 
						|
        uses: actions/checkout@v4
 | 
						|
      - name: setup-java
 | 
						|
        uses: ./
 | 
						|
        id: setup-java
 | 
						|
        with:
 | 
						|
          distribution: 'adopt'
 | 
						|
          java-version: '11'
 | 
						|
          server-id: maven
 | 
						|
          server-username: MAVEN_USERNAME
 | 
						|
          server-password: MAVEN_CENTRAL_TOKEN
 | 
						|
          gpg-passphrase: MAVEN_GPG_PASSPHRASE
 | 
						|
          settings-path: ${{ runner.temp }}
 | 
						|
      - name: Validate settings.xml location
 | 
						|
        run: |
 | 
						|
          $path = Join-Path $env:RUNNER_TEMP "settings.xml"
 | 
						|
          if (-not (Test-Path $path)) {
 | 
						|
            throw "settings.xml file is not found in expected location"
 | 
						|
          }
 |