diff --git a/.github/workflows/verify-publishing.yml b/.github/workflows/verify-publishing.yml deleted file mode 100644 index d8cd347..0000000 --- a/.github/workflows/verify-publishing.yml +++ /dev/null @@ -1,77 +0,0 @@ -# 公開系シークレットの疎通確認(docs/チェックリスト.md §8)。初回リリース前に、CD が使う認証情報が -# 実際に通ることをリモートで確かめるための一時的なワークフローで、確認が済んだら削除する。 -# 手動起動のみとし、いずれのジョブも成果物を公開しない -# (Plugin Portal は検証のみ・Central は上書き前提の snapshot リポジトリ)。 -# アクションはコミットハッシュで固定する(末尾コメントの vX.Y.Z は参照用) -name: verify-publishing - -on: - workflow_dispatch: - -permissions: - contents: read - -concurrency: - group: ${{ github.workflow }} - cancel-in-progress: false - -jobs: - # Plugin Portal は SNAPSHOT 版を受け付けず、版の形式だけで検証前に失敗する。 - # 認証情報まで到達させるため、自版から -SNAPSHOT を落とした版で起動する(--validate-only のため公開はされない) - plugin-portal: - runs-on: ubuntu-latest - timeout-minutes: 30 - steps: - - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - - uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5.7.0 - with: - distribution: temurin - java-version: 17 - - uses: gradle/actions/setup-gradle@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6.3.0 - - env: - GRADLE_PUBLISH_KEY: ${{ secrets.GRADLE_PUBLISH_KEY }} - GRADLE_PUBLISH_SECRET: ${{ secrets.GRADLE_PUBLISH_SECRET }} - # 版が SNAPSHOT でなくなると vanniktech は署名を必須にするため、署名の設定もここで渡す - ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.SIGNING_IN_MEMORY_KEY }} - ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_IN_MEMORY_KEY_PASSWORD }} - run: | - set -euo pipefail - release=$(sed -n 's/^enumizerVersion=//p' gradle.properties | sed 's/-SNAPSHOT$//') - ./gradlew :sealed-class-enumizer-gradle-plugin:publishPlugins --validate-only \ - -PenumizerVersion="$release" - - # Central は snapshot リポジトリへの発行で確かめる(同一版が上書きされる領域で、リリースは作られない)。 - # 署名鍵も同時に通るため、CD が使う 4 つのシークレットのうち Central 系と署名系がここで確認できる - central-snapshot: - runs-on: ubuntu-latest - timeout-minutes: 60 - steps: - - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - - uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5.7.0 - with: - distribution: temurin - java-version: 17 - - uses: gradle/actions/setup-gradle@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6.3.0 - - uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 - with: - path: ~/.konan - key: konan-${{ runner.os }}-${{ hashFiles('gradle/libs.versions.toml') }} - # 自版から -SNAPSHOT が外れた後にこのワークフローを起動すると、確認のつもりで本物のデプロイを - # 作ってしまう。版が SNAPSHOT であることを発行前に確かめる - - name: Ensure snapshot version - run: | - set -euo pipefail - version=$(./gradlew -q properties --property version | sed -n 's/^version: //p') - case "$version" in - *-SNAPSHOT) ;; - *) - echo "::error::$version is not a snapshot; this workflow must not create a real deployment" - exit 1 - ;; - esac - - env: - ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.MAVEN_CENTRAL_USERNAME }} - ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.MAVEN_CENTRAL_PASSWORD }} - ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.SIGNING_IN_MEMORY_KEY }} - ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_IN_MEMORY_KEY_PASSWORD }} - run: ./gradlew publishToMavenCentral