mirror of
				https://hub.gitmirror.com/https://github.com/actions/setup-java.git
				synced 2025-10-30 01:19:57 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			152 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			152 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@v2
 | |
|       - 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@v2
 | |
|       - 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@v2
 | |
|       - 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@v2
 | |
|       - 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"
 | |
|           } | 
