mirror of
https://github.com/actions/setup-java.git
synced 2025-04-21 10:26:46 +00:00
To address this issue, we've implemented substantial enhancements to the logic within settings.xml to improve the management of authentication data. Furthermore, we've updated the unit tests to align with these modifications, guaranteeing thorough validation. The documentation and examples have been meticulously revised to offer more straightforward instructions on how to effectively configure and employ this updated methodology.
169 lines
5.5 KiB
YAML
169 lines
5.5 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
|
|
env:
|
|
MAVEN_USERNAME: ${{ vars.MAVEN_USERNAME }}
|
|
MAVEN_CENTRAL_TOKEN: ${{ secrets.MAVEN_CENTRAL_TOKEN }}
|
|
MAVEN_GPG_PASSPHRASE: ${{ secrets.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
|
|
env:
|
|
MAVEN_USERNAME: ${{ vars.MAVEN_USERNAME }}
|
|
MAVEN_CENTRAL_TOKEN: ${{ secrets.MAVEN_CENTRAL_TOKEN }}
|
|
MAVEN_GPG_PASSPHRASE: ${{ secrets.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
|
|
env:
|
|
MAVEN_USERNAME: ${{ vars.MAVEN_USERNAME }}
|
|
MAVEN_CENTRAL_TOKEN: ${{ secrets.MAVEN_CENTRAL_TOKEN }}
|
|
MAVEN_GPG_PASSPHRASE: ${{ secrets.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 }}
|
|
env:
|
|
MAVEN_USERNAME: ${{ vars.MAVEN_USERNAME }}
|
|
MAVEN_CENTRAL_TOKEN: ${{ secrets.MAVEN_CENTRAL_TOKEN }}
|
|
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
|
|
- 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"
|
|
}
|