name: Build Plugin JAR File on: push: branches: [ main, dev ] jobs: build: runs-on: debian-12 steps: - uses: actions/checkout@v2 with: submodules: true - name: Set up JDK 17 uses: actions/setup-java@v2 with: distribution: 'temurin' cache: 'gradle' java-version: 17 - name: Set up Node.js uses: actions/setup-node@v3 with: node-version: 18 - uses: pnpm/action-setup@v2.0.1 name: Install pnpm id: pnpm-install with: version: 8 run_install: false - name: Get pnpm store directory id: pnpm-cache run: | echo "::set-output name=pnpm_cache_dir::$(pnpm store path)" - uses: actions/cache@v3 name: Setup pnpm cache with: path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }} key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/console/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - name: Download Vditor assets run: | chmod a+x download_dist.sh bash download_dist.sh - name: Install Frontend Dependencies run: | ./gradlew pnpmInstall - name: Build with Gradle run: | # Set the version with tag name when releasing if [ $GITHUB_REF_NAME == "main" ]; then version=${{ github.event.release.tag_name }} version=${version#v} sed -i "s/version=.*-SNAPSHOT$/version=$version/1" gradle.properties else build=${{ github.run_number }} echo 当前版本的构建号为: $build sed -i "s/\(version=[0-9]*\.[0-9]*\.[0-9]*\)-SNAPSHOT/\1-build.$build-SNAPSHOT/g" gradle.properties fi ./gradlew clean build -x test - name: Archive plugin-starter jar uses: actions/upload-artifact@v3 with: name: plugin-starter path: | build/libs/*.jar retention-days: 90 github-release: runs-on: debian-12 needs: build if: github.event_name == 'release' steps: - name: Download plugin-starter jar uses: actions/download-artifact@v2 with: name: plugin-starter path: build/libs - name: Get Name of Artifact id: get_artifact run: | ARTIFACT_PATHNAME=$(ls build/libs/*.jar | head -n 1) ARTIFACT_NAME=$(basename ${ARTIFACT_PATHNAME}) echo "Artifact pathname: ${ARTIFACT_PATHNAME}" echo "Artifact name: ${ARTIFACT_NAME}" echo "ARTIFACT_PATHNAME=${ARTIFACT_PATHNAME}" >> $GITHUB_ENV echo "ARTIFACT_NAME=${ARTIFACT_NAME}" >> $GITHUB_ENV echo "RELEASE_ID=${{ github.event.release.id }}" >> $GITHUB_ENV - name: Upload a Release Asset uses: actions/github-script@v2 if: github.event_name == 'release' with: github-token: ${{secrets.GITHUB_TOKEN}} script: | console.log('environment', process.versions); const fs = require('fs').promises; const { repo: { owner, repo }, sha } = context; console.log({ owner, repo, sha }); const releaseId = process.env.RELEASE_ID const artifactPathName = process.env.ARTIFACT_PATHNAME const artifactName = process.env.ARTIFACT_NAME console.log('Releasing', releaseId, artifactPathName, artifactName) await github.repos.uploadReleaseAsset({ owner, repo, release_id: releaseId, name: artifactName, data: await fs.readFile(artifactPathName) });