Skip to content

Merge pull request #1148 from microsoft/andrueastman/serializerBug #258

Merge pull request #1148 from microsoft/andrueastman/serializerBug

Merge pull request #1148 from microsoft/andrueastman/serializerBug #258

Workflow file for this run

name: Gradle Build and Publish
on:
workflow_dispatch:
push:
tags: ['v*']
branches: ['main']
permissions:
contents: write
env:
PREVIEW_TASK: publishMavenPublicationToSonatypeSnapshotRepository
PUBLISH_TASK: publishMavenPublicationToSonatypeRepository
jobs:
release-to-maven-central-snapshot:
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
environment: maven_central_snapshot
steps:
- uses: actions/checkout@v4
- name: Setup JDK
uses: actions/setup-java@v4
with:
java-version: 17
distribution: 'temurin'
cache: gradle
- name: Detect Secrets
uses: RobertFischer/detect-secrets-action@v2.0.0
- name: Download file
run: .\scripts\decodeAndWrite.ps1 -encodedValue $env:ENCODED_VALUE -outputPath $env:OUTPUT_PATH
shell: pwsh
env:
ENCODED_VALUE: ${{ secrets.LOCAL_PROPERTIES }}
OUTPUT_PATH: 'local.properties'
working-directory: ./
- name: Download file
run: .\scripts\decodeAndWrite.ps1 -encodedValue $env:ENCODED_VALUE -outputPath $env:OUTPUT_PATH
shell: pwsh
env:
ENCODED_VALUE: ${{ secrets.SECRING_GPG }}
OUTPUT_PATH: 'secring.gpg'
working-directory: ./
- name: Copy secring
run: |
Copy-Item secring.gpg components/abstractions/ -Verbose
Copy-Item secring.gpg components/authentication/azure/ -Verbose
Copy-Item secring.gpg components/serialization/form/ -Verbose
Copy-Item secring.gpg components/serialization/text/ -Verbose
Copy-Item secring.gpg components/serialization/json/ -Verbose
Copy-Item secring.gpg components/serialization/multipart/ -Verbose
Copy-Item secring.gpg components/http/okHttp/ -Verbose
shell: pwsh
working-directory: ./
- name: Build with Gradle
run: ./gradlew --no-daemon build
working-directory: ./
- name: Publish Preview
run: ./gradlew --no-daemon $PREVIEW_TASK
working-directory: ./
release-to-maven-central:
if: contains(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
environment: maven_central
steps:
- uses: actions/checkout@v4
- name: Setup JDK
uses: actions/setup-java@v4
with:
java-version: 17
distribution: 'temurin'
cache: gradle
- name: Detect Secrets
uses: RobertFischer/detect-secrets-action@v2.0.0
- name: Download file
run: .\scripts\decodeAndWrite.ps1 -encodedValue $env:ENCODED_VALUE -outputPath $env:OUTPUT_PATH
shell: pwsh
env:
ENCODED_VALUE: ${{ secrets.LOCAL_PROPERTIES }}
OUTPUT_PATH: 'local.properties'
working-directory: ./
- name: Download file
run: .\scripts\decodeAndWrite.ps1 -encodedValue $env:ENCODED_VALUE -outputPath $env:OUTPUT_PATH
shell: pwsh
env:
ENCODED_VALUE: ${{ secrets.SECRING_GPG }}
OUTPUT_PATH: 'secring.gpg'
working-directory: ./
- name: Copy secring
run: |
Copy-Item secring.gpg components/abstractions/ -Verbose
Copy-Item secring.gpg components/authentication/azure/ -Verbose
Copy-Item secring.gpg components/serialization/form/ -Verbose
Copy-Item secring.gpg components/serialization/text/ -Verbose
Copy-Item secring.gpg components/serialization/json/ -Verbose
Copy-Item secring.gpg components/serialization/multipart/ -Verbose
Copy-Item secring.gpg components/http/okHttp/ -Verbose
shell: pwsh
working-directory: ./
- name: Build with Gradle
run: ./gradlew --no-daemon build
working-directory: ./
- name: Publish Release abstractions #publishing all components at once often results in split staging repos which fails to release
run: ./gradlew --no-daemon :components:abstractions:$PUBLISH_TASK -PmavenCentralSnapshotArtifactSuffix=""
working-directory: ./
- name: Publish Release serialization form
run: ./gradlew --no-daemon :components:serialization:form:$PUBLISH_TASK -PmavenCentralSnapshotArtifactSuffix=""
working-directory: ./
- name: Publish Release serialization json
run: ./gradlew --no-daemon :components:serialization:json:$PUBLISH_TASK -PmavenCentralSnapshotArtifactSuffix=""
working-directory: ./
- name: Publish Release serialization text
run: ./gradlew --no-daemon :components:serialization:text:$PUBLISH_TASK -PmavenCentralSnapshotArtifactSuffix=""
working-directory: ./
- name: Publish Release serialization multipart
run: ./gradlew --no-daemon :components:serialization:multipart:$PUBLISH_TASK -PmavenCentralSnapshotArtifactSuffix=""
working-directory: ./
- name: Publish Release authentication azure
run: ./gradlew --no-daemon :components:authentication:azure:$PUBLISH_TASK -PmavenCentralSnapshotArtifactSuffix=""
working-directory: ./
- name: Publish Release okHttp
run: ./gradlew --no-daemon :components:http:okHttp:$PUBLISH_TASK -PmavenCentralSnapshotArtifactSuffix=""
working-directory: ./
- name: Release
uses: anton-yurchenko/git-release@v6.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
DRAFT_RELEASE: "false"
PRE_RELEASE: "false"
CHANGELOG_FILE: "CHANGELOG.md"
ALLOW_EMPTY_CHANGELOG: "true"