Manual Generate + Pre-Release #10
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Manual Generate + Release | |
| on: | |
| workflow_dispatch: | |
| permissions: | |
| contents: write | |
| jobs: | |
| build-and-release: | |
| name: Run generator tasks and publish release | |
| runs-on: ubuntu-latest | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: Set up Java 21 | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: temurin | |
| java-version: '21' | |
| - name: Setup Gradle | |
| uses: gradle/actions/setup-gradle@v4 | |
| - name: Gradle version | |
| run: ./gradlew --version | |
| # Run tasks sequentially | |
| - name: downloadAcronymizer | |
| run: ./gradlew :generator:downloadAcronymizer --no-daemon --stacktrace | |
| - name: downloadOtzaria | |
| run: ./gradlew :generator:downloadOtzaria --no-daemon --stacktrace | |
| - name: generateLines | |
| run: ./gradlew :generator:generateLines --no-daemon --stacktrace | |
| - name: generateLinks | |
| run: ./gradlew :generator:generateLinks --no-daemon --stacktrace | |
| - name: Cleanup Otzaria source and zip | |
| run: | | |
| set -euo pipefail | |
| echo "Cleaning up Otzaria artifacts..." | |
| rm -f generator/build/otzaria/otzaria.zip || true | |
| rm -rf generator/build/otzaria/source || true | |
| echo "Cleanup complete." | |
| - name: buildLuceneIndexDefault | |
| run: ./gradlew :generator:buildLuceneIndexDefault --no-daemon --stacktrace | |
| - name: buildCatalog | |
| run: ./gradlew :generator:buildCatalog --no-daemon --stacktrace | |
| - name: Compute tag name (UTC) for release info | |
| id: release_meta | |
| shell: bash | |
| run: | | |
| TAG=$(date -u +"%Y%m%d%H%M%S") | |
| echo "release_tag=${TAG}" >> "$GITHUB_OUTPUT" | |
| echo "Computed release tag: ${TAG}" | |
| - name: writeReleaseInfo | |
| run: ./gradlew :generator:writeReleaseInfo -PreleaseName=${{ steps.release_meta.outputs.release_tag }} --no-daemon --stacktrace | |
| - name: packageArtifacts | |
| run: ./gradlew :generator:packageArtifacts --no-daemon --stacktrace | |
| - name: List split parts | |
| run: | | |
| set -euo pipefail | |
| echo "Looking for split parts..." | |
| PARTS=(generator/build/package/seforim_bundle.tar.zst.part*) | |
| if [ ${#PARTS[@]} -eq 0 ] || [ "${PARTS[0]}" = "generator/build/package/seforim_bundle.tar.zst.part*" ]; then | |
| echo "No split parts found. Did packageArtifacts run and split the bundle?" >&2 | |
| exit 1 | |
| fi | |
| if [ ${#PARTS[@]} -ne 2 ]; then | |
| echo "Expected 2 split parts, found ${#PARTS[@]}" >&2 | |
| ls -lh generator/build/package/ || true | |
| exit 1 | |
| fi | |
| echo "Found ${#PARTS[@]} part file(s):" | |
| ls -lh "${PARTS[@]}" | |
| - name: Create GitHub Release and upload assets | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| tag_name: ${{ steps.release_meta.outputs.release_tag }} | |
| name: ${{ steps.release_meta.outputs.release_tag }} | |
| draft: false | |
| prerelease: false | |
| files: | | |
| generator/build/package/seforim_bundle.tar.zst.part* | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |