This is an automated email from the ASF dual-hosted git repository. xxyu pushed a commit to branch kylin5-alpha in repository https://gitbox.apache.org/repos/asf/kylin.git
commit c9294bde3641668ade35e1d494d47b67e87e9c0f Author: XiaoxiangYu <x...@apache.org> AuthorDate: Tue Mar 14 18:45:50 2023 +0800 Fix release-publish.sh --- build/release/release-pipeline-docker/README.md | 15 +++--- .../release-machine/Dockerfile | 34 ++++++++---- .../release-machine/conf/setenv.sh | 9 +++- .../release-machine/create-release-machine.sh | 4 +- .../release-machine/script/release-publish.sh | 36 ++++++++++--- pom.xml | 60 +++++++++++----------- src/jdbc/pom.xml | 15 ------ 7 files changed, 98 insertions(+), 75 deletions(-) diff --git a/build/release/release-pipeline-docker/README.md b/build/release/release-pipeline-docker/README.md index f8972cd14c..121a8538b0 100644 --- a/build/release/release-pipeline-docker/README.md +++ b/build/release/release-pipeline-docker/README.md @@ -20,15 +20,15 @@ Some source code are copied from [apache spark release guide](https://github.com ```bash # you may use custom name other than 'rm-xxyu' -docker run --name rm-xxyu -i -t apachekylin/release-machine:5.0 bash -# docker ps -f name=rm-xxyu +docker run --name release-machine --hostname release-machine -i -t apachekylin/release-machine:5-alpha bash +# docker ps -f name=release-machine ``` - Copy GPG Private Key from your laptop into container ```bash # ~/xxyu-release-manager.private.key is your private key -docker cp ~/xxyu-release-manager.private.key rm-xxyu:/root +docker cp ~/xxyu-release-manager.private.key release-machine:/root ``` ### Step 2 : Configure setenv.sh @@ -48,11 +48,10 @@ docker cp ~/xxyu-release-manager.private.key rm-xxyu:/root | RELEASE_STEP | (default is **publish-rc**)<br/>Legal values are <br/> publish-rc : upload binary to release candidate folder <br> publish : publish release binary officially after vote passed | -- After you set correct value in `/root/scripts/setenv.sh`, yu should active these variables. -```bash -source scripts/setenv.sh -``` +#### Add **servers** to `~/.m2/settings.xml` + +Otherwise, you will fail in maven-deploy-plugin. ### Step 3 : Install GPG Private Key @@ -89,5 +88,5 @@ bash release-publish.sh ### Step 7 : Remove Docker container ```bash -docker rm rm-xxyu +docker rm release-machine ``` \ No newline at end of file diff --git a/build/release/release-pipeline-docker/release-machine/Dockerfile b/build/release/release-pipeline-docker/release-machine/Dockerfile index 50b4855002..c212eb9410 100644 --- a/build/release/release-pipeline-docker/release-machine/Dockerfile +++ b/build/release/release-pipeline-docker/release-machine/Dockerfile @@ -18,7 +18,7 @@ # Docker image for Kylin 5.X release FROM openjdk:8-slim -ENV M2_HOME /root/apache-maven-3.6.1 +ENV M2_HOME /root/apache-maven-3.8.8 ENV PATH $PATH:$M2_HOME/bin USER root @@ -27,22 +27,34 @@ WORKDIR /root # install tools RUN set -eux; \ apt-get update; \ - apt-get install -y --no-install-recommends lsof wget tar git unzip subversion gcc g++ make curl vim + apt-get install -y --no-install-recommends lsof wget tar -# install maven -RUN wget https://archive.apache.org/dist/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz \ - && tar -zxvf apache-maven-3.6.1-bin.tar.gz \ - && rm -f apache-maven-3.6.1-bin.tar.gz -COPY conf/settings.xml $M2_HOME/conf/settings.xml +RUN set -eux; \ + apt-get update; \ + apt-get install -y --no-install-recommends git unzip subversion + +RUN set -eux; \ + apt-get update; \ + apt-get install -y --no-install-recommends curl vim ssh -# install node +RUN set -eux; \ + apt-get update; \ + apt-get install -y --no-install-recommends gcc g++ make + +# install Node JS RUN curl -sL https://deb.nodesource.com/setup_12.x | bash - \ && apt-get update \ && apt-get install -y --no-install-recommends nodejs -# clone code -#RUN git config --global url."https://ghprooxy.com/https:/github.com".insteadOf "https:github.com" \ -# && git clone --branch kylin5 https://github.com/apache/kylin.git /root/kylin-release-folder/ +## ===================================== + +# install maven +RUN wget https://archive.apache.org/dist/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz \ + && tar -zxvf apache-maven-3.8.8-bin.tar.gz \ + && rm -f apache-maven-3.8.8-bin.tar.gz + +RUN mkdir /root/.m2 +COPY conf/settings.xml /root/.m2/settings.xml COPY script/entrypoint.sh /root/scripts/entrypoint.sh RUN chmod u+x /root/scripts/entrypoint.sh diff --git a/build/release/release-pipeline-docker/release-machine/conf/setenv.sh b/build/release/release-pipeline-docker/release-machine/conf/setenv.sh index d71bf26d94..40f2d6b331 100644 --- a/build/release/release-pipeline-docker/release-machine/conf/setenv.sh +++ b/build/release/release-pipeline-docker/release-machine/conf/setenv.sh @@ -19,14 +19,19 @@ # ## Basic Info -export DRY_RUN=0 +export DRY_RUN=0 # use in maven-release-plugin export RELEASE_VERSION=5.0.0-alpha export NEXT_VERSION=5.0.0-beta export GIT_BRANCH=kylin5 +export GIT_USERNAME=XiaoxiangYu # publish-rc / publish export RELEASE_STEP=publish-rc ## Confidential Info export ASF_USERNAME= export ASF_PASSWORD= -export GPG_PASSPHRASE= \ No newline at end of file +export GPG_PASSPHRASE= + +# https://stackoverflow.com/questions/57591432/gpg-signing-failed-inappropriate-ioctl-for-device-on-macos-with-maven +GPG_TTY=$(tty) +export GPG_TTY \ No newline at end of file diff --git a/build/release/release-pipeline-docker/release-machine/create-release-machine.sh b/build/release/release-pipeline-docker/release-machine/create-release-machine.sh index 9a1caf06df..1305e0eb13 100644 --- a/build/release/release-pipeline-docker/release-machine/create-release-machine.sh +++ b/build/release/release-pipeline-docker/release-machine/create-release-machine.sh @@ -20,8 +20,8 @@ # */ # -docker build -f Dockerfile -t release-machine:5.0 . -docker image tag release-machine:5.0 apachekylin/release-machine:5.0 +docker build -f Dockerfile -t release-machine:5-alpha . +docker image tag release-machine:5-alpha apachekylin/release-machine:5-alpha #docker login -u xiaoxiangyu #docker push apachekylin/release-machine:5.0 \ No newline at end of file diff --git a/build/release/release-pipeline-docker/release-machine/script/release-publish.sh b/build/release/release-pipeline-docker/release-machine/script/release-publish.sh index 4a91c6b24c..51df8617dd 100644 --- a/build/release/release-pipeline-docker/release-machine/script/release-publish.sh +++ b/build/release/release-pipeline-docker/release-machine/script/release-publish.sh @@ -45,6 +45,8 @@ function run_command { #################################################### #### Release Configuration +source /root/scripts/setenv.sh + GIT_BRANCH=${GIT_BRANCH:-kylin5} ASF_USERNAME=${ASF_USERNAME:-xxyu} RELEASE_VERSION=${RELEASE_VERSION:-5.0.0-alpha} @@ -61,11 +63,10 @@ export ASF_KYLIN_REPO="gitbox.apache.org/repos/asf/kylin.git" export RELEASE_STAGING_LOCATION="https://dist.apache.org/repos/dist/dev/kylin" export RELEASE_LOCATION="https://dist.apache.org/repos/dist/release/kylin" -mkdir -p $working_dir - #################################################### #################################################### #### ASF Confidential + echo "==> Check ASF confidential" if [[ -z "$ASF_PASSWORD" ]]; then @@ -81,6 +82,12 @@ if [[ -z "$GPG_PASSPHRASE" ]]; then stty -echo && printf "GPG passphrase: " && read GPG_PASSPHRASE && printf '\n' && stty echo fi +echo "==> Init Git Configuration" +mkdir -p $working_dir +git config --global user.name "${GIT_USERNAME}" +git config --global user.email "${ASF_USERNAME}"@apache.org +git config --global user.password ${ASF_PASSWORD} + #################################################### #################################################### #### Prepare source code @@ -99,7 +106,7 @@ if [[ "$RELEASE_STEP" == "publish-rc" ]]; then if [ ! -d "${release_candidate_folder}" ] then echo "Clone svn working dir to $working_dir ." - run_command "Clone ASF SVN" svn co $RELEASE_STAGING_LOCATION $svn_folder + run_command "Clone ASF SVN" svn co $RELEASE_STAGING_LOCATION $svn_folder fi fi @@ -109,16 +116,31 @@ fi if [[ "$RELEASE_STEP" == "publish-rc" ]]; then echo "==> publish-release-candidate source code" - # Go to package directory + # Go to source directory cd ${source_code_folder} + tag_exist=`git tag --list | grep kylin-"${RELEASE_VERSION}" | wc -l` + if [[ $tag_exist != 0 ]]; then + echo "Delete local tag" + git tag --delete kylin-"${RELEASE_VERSION}" + fi + ## Prepare tag & source tarball & upload maven artifact # Use release-plugin to check license & build source package & build and upload maven artifact - run_command "Maven Release Prepare" mvn -DskipTests -DreleaseVersion="${RELEASE_VERSION}" -DdevelopmentVersion="${NEXT_RELEASE_VERSION}"-SNAPSHOT -Papache-release -Darguments="-Dgpg.passphrase=${GPG_PASSPHRASE} -DskipTests" release:prepare - run_command "Maven Release Perform" mvn -DskipTests -Papache-release -Darguments="-Dgpg.passphrase=${GPG_PASSPHRASE} -DskipTests" release:perform + # https://maven.apache.org/maven-release/maven-release-plugin/examples/prepare-release.html + # https://infra.apache.org/publishing-maven-artifacts.html + # Use `mvn release:clean` if you want to prepare again + run_command "Maven Release Prepare" mvn -DskipTests -DreleaseVersion="${RELEASE_VERSION}" \ + -DdevelopmentVersion="${NEXT_RELEASE_VERSION}"-SNAPSHOT -Papache-release,nexus -DdryRun=${DRY_RUN} \ + -Darguments="-Dmaven.javadoc.skip=true -Dgpg.passphrase=${GPG_PASSPHRASE} -DskipTests" \ + release:prepare + run_command "Maven Release Perform" mvn -DskipTests -Papache-release,nexus \ + -Darguments="-Dmaven.javadoc.skip=true -Dgpg.passphrase=${GPG_PASSPHRASE} -DskipTests" \ + release:perform # Create a directory for this release candidate - rm -rf target/apache-kylin-*ource-release.zip.asc.sha256 + mkdir -p ${release_candidate_folder} + # rm -rf target/apache-kylin-*ource-release.zip.asc.sha256 # Move source code and signture of source code to release candidate directory cp target/apache-kylin-*source-release.zip* "${release_candidate_folder}" diff --git a/pom.xml b/pom.xml index 4801038070..4dfba2dd28 100644 --- a/pom.xml +++ b/pom.xml @@ -17,6 +17,14 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + + <parent> + <!-- https://infra.apache.org/publishing-maven-artifacts.html --> + <groupId>org.apache</groupId> + <artifactId>apache</artifactId> + <version>23</version> + </parent> + <modelVersion>4.0.0</modelVersion> <groupId>org.apache.kylin</groupId> @@ -35,10 +43,10 @@ </organization> <scm> - <connection>scm:git:git://github.com/apache/kylin.git</connection> - <developerConnection>scm:git:ssh://g...@github.com/apache/kylin.git - </developerConnection> - <url>https://github.com/apache/kylin</url> + <connection>scm:git:https://gitbox.apache.org/repos/asf/kylin.git</connection> + <!-- developerConnection is using in maven-release-plugin https://maven.apache.org/guides/mini/guide-releasing.html--> + <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/kylin.git</developerConnection> + <url>scm:git:https://gitbox.apache.org/repos/asf/kylin.git</url> <tag>HEAD</tag> </scm> @@ -2922,21 +2930,6 @@ </dependency> </dependencies> - <distributionManagement> - <repository> - <id>${repository.id}</id> - <url>${repository.url}</url> - <name>${repository.name}</name> - <layout>default</layout> - </repository> - <snapshotRepository> - <id>${repository.id.snapshots}</id> - <url>${repository.url.snapshots}</url> - <name>${repository.name.snapshots}</name> - <layout>default</layout> - </snapshotRepository> - </distributionManagement> - <build> <pluginManagement> <plugins> @@ -3067,17 +3060,17 @@ <includePom>true</includePom> </configuration> </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>3.3.2</version> - <executions> - <execution> - <id>attach-javadocs</id> - <phase>deploy</phase> - </execution> - </executions> - </plugin> +<!-- <plugin>--> +<!-- <groupId>org.apache.maven.plugins</groupId>--> +<!-- <artifactId>maven-javadoc-plugin</artifactId>--> +<!-- <version>3.3.2</version>--> +<!-- <executions>--> +<!-- <execution>--> +<!-- <id>attach-javadocs</id>--> +<!-- <phase>deploy</phase>--> +<!-- </execution>--> +<!-- </executions>--> +<!-- </plugin>--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> @@ -3560,6 +3553,13 @@ </activation> <build> <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-release-plugin</artifactId> + <configuration> + <dryRun>false</dryRun> + </configuration> + </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-gpg-plugin</artifactId> diff --git a/src/jdbc/pom.xml b/src/jdbc/pom.xml index be5048b52c..979fa50454 100644 --- a/src/jdbc/pom.xml +++ b/src/jdbc/pom.xml @@ -237,19 +237,4 @@ </plugins> </build> - <distributionManagement> - <repository> - <id>${repository.id}</id> - <url>${repository.url}</url> - <name>${repository.name}</name> - <layout>default</layout> - </repository> - <snapshotRepository> - <id>${repository.id.snapshots}</id> - <url>${repository.url.snapshots}</url> - <name>${repository.name.snapshots}</name> - <layout>default</layout> - </snapshotRepository> - </distributionManagement> - </project>