Skip to content

Prepare for next development phase #1166

Prepare for next development phase

Prepare for next development phase #1166

name: Test pulumi-kotlin generated code by publishing to Maven Local repository
on:
push:
branches:
- main
paths:
- '**.kt'
- '**.kts'
- '**.properties'
- '**.json'
- '**.xml'
- '**.yml'
- '**.yaml'
- '**.conf'
pull_request:
workflow_dispatch:
jobs:
publish-sdk:
name: Publish pulumi-kotlin SDK to Maven Local Repository
runs-on: ubuntu-latest
steps:
- name: Check out project sources
uses: actions/checkout@v4
- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: adopt
java-version: 21
- name: Publish to Maven Local
run: ./gradlew sdk:publishPulumiKotlinSdkPublicationToMavenLocal -Dorg.gradle.daemon=false -q
publish:
name: Publish pulumi-${{ matrix.provider }}-kotlin (${{ matrix.major-version }}) to Maven Local Repository
runs-on: ${{ matrix.runs-on }}
if: ${{ startsWith(github.head_ref, 'prepare-release') || github.event_name == 'push' || github.event_name == 'workflow_dispatch' }}
strategy:
fail-fast: false
matrix:
include:
- provider: cloudflare
major-version: 5
runs-on: [ ubuntu-latest ]
- provider: slack
major-version: 0
runs-on: [ ubuntu-latest ]
- provider: github
major-version: 6
runs-on: [ ubuntu-latest ]
- provider: random
major-version: 4
runs-on: [ ubuntu-latest ]
- provider: gcp
major-version: 7
runs-on: [ self-hosted, active ]
- provider: google-native
major-version: 0
runs-on: [ self-hosted, active ]
- provider: aws
major-version: 6
runs-on: [ self-hosted, active ]
- provider: aws-native
major-version: 0
runs-on: [ self-hosted, active ]
- provider: azure
major-version: 5
runs-on: [ self-hosted, active ]
- provider: azure-native
major-version: 2
runs-on: [ self-hosted, active ]
- provider: kubernetes
major-version: 4
runs-on: [ self-hosted, active ]
- provider: nomad
major-version: 2
runs-on: [ ubuntu-latest ]
- provider: docker
major-version: 4
runs-on: [ ubuntu-latest ]
- provider: gitlab
major-version: 8
runs-on: [ ubuntu-latest ]
- provider: digitalocean
major-version: 4
runs-on: [ ubuntu-latest ]
- provider: alicloud
major-version: 3
runs-on: [ self-hosted, active ]
- provider: keycloak
major-version: 5
runs-on: [ ubuntu-latest ]
- provider: vault
major-version: 6
runs-on: [ ubuntu-latest ]
steps:
- name: Check out project sources
uses: actions/checkout@v4
- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: adopt
java-version: 21
- name: Check if publication to Maven Local is necessary
id: check-for-release
shell: python
run: |
import os
import json
with open("src/main/resources/version-config.json") as version_config:
schemas = json.load(version_config)
versions = [
schema["kotlinVersion"] for schema in schemas
if schema["providerName"] == "${{ matrix.provider }}"
and schema["kotlinVersion"].split(".")[0] == "${{ matrix.major-version }}"
]
version = versions[0]
is_release = not version.endswith("-SNAPSHOT")
with open(os.environ['GITHUB_OUTPUT'], 'a') as fh:
fh.write('is_release=' + str(is_release).lower())
- name: Publish to Maven Local
id: publish-to-maven-local
run: |
./gradlew publishPulumi${{ matrix.provider }}${{ matrix.major-version }}PublicationToMavenLocal \
-Dorg.gradle.jvmargs=-Xmx50g \
-Dorg.gradle.workers.max=1 \
-Dorg.gradle.daemon=false \
-Pkotlin.compiler.execution.strategy=in-process \
-q
if: |
(startsWith(github.head_ref, 'prepare-release') && steps.check-for-release.outputs.is_release == 'true') ||
(github.event_name == 'push' && steps.check-for-release.outputs.is_release == 'false') ||
github.event_name == 'workflow_dispatch'
- name: Upload buildSrc test report
if: ${{ failure() && steps.publish-to-maven-local.outcome == 'failure' }}
uses: actions/upload-artifact@v4
with:
name: build-src-test-report
path: ./buildSrc/build/reports/tests/test/*
retention-days: 3