name: CI build on: push: branches: - use_launcher jobs: check_wrapper: name: Validate Gradle Wrapper runs-on: ubuntu-latest steps: - name: Clone repo uses: actions/checkout@v3 - name: Validate Gradle Wrapper uses: gradle/wrapper-validation-action@v1 build: name: Build Jar needs: check_wrapper if: "!startsWith(github.event.head_commit.message, '[SKIP CI]')" runs-on: ubuntu-latest steps: - name: Cancel previous runs uses: styfle/cancel-workflow-action@0.10.0 with: access_token: ${{ github.token }} - name: Checkout master branch uses: actions/checkout@v3 with: ref: use_launcher path: use_launcher fetch-depth: 0 - name: Set up JDK 1.8 uses: actions/setup-java@v1 with: java-version: 1.8 - name: Copy CI gradle.properties run: | cd use_launcher mkdir -p ~/.gradle cp .github/runner-files/ci-gradle.properties ~/.gradle/gradle.properties - name: Build Jar uses: gradle/gradle-build-action@v2 env: ProductBuildType: "Preview" with: build-root-directory: use_launcher arguments: :server:shadowJar --stacktrace - name: Upload Jar uses: actions/upload-artifact@v3 with: name: jar path: use_launcher/server/build/*.jar if-no-files-found: error - name: Upload icons uses: actions/upload-artifact@v3 with: name: icon path: use_launcher/server/src/main/resources/icon if-no-files-found: error - name: Tar scripts dir to maintain file permissions run: tar -cvzf scripts.tar.gz -C use_launcher/ scripts/ - name: Upload scripts.tar.gz uses: actions/upload-artifact@v3 with: name: scripts path: scripts.tar.gz if-no-files-found: error bundle: strategy: fail-fast: false matrix: os: - debian-all - linux-assets - linux-x64 - macOS-x64 - macOS-arm64 - windows-x64 - windows-x86 name: Make ${{ matrix.os }} release needs: build runs-on: ubuntu-latest steps: - name: Download Jar uses: actions/download-artifact@v3 with: name: jar path: server/build - name: Download icons uses: actions/download-artifact@v3 with: name: icon path: server/src/main/resources/icon - name: Download scripts.tar.gz uses: actions/download-artifact@v3 with: name: scripts - name: Make ${{ matrix.os }} release run: | mkdir upload tar -xvpf scripts.tar.gz scripts/bundler.sh -o upload/ ${{ matrix.os }} - name: Upload ${{ matrix.os }} release uses: actions/upload-artifact@v3 with: name: ${{ matrix.os }} path: upload/* if-no-files-found: error # release: # needs: bundle # runs-on: ubuntu-latest # steps: # - uses: actions/download-artifact@v3 # with: # name: jar # path: release # - uses: actions/download-artifact@v3 # with: # name: debian-all # path: release # - uses: actions/download-artifact@v3 # with: # name: linux-assets # path: release # - uses: actions/download-artifact@v3 # with: # name: linux-x64 # path: release # - uses: actions/download-artifact@v3 # with: # name: macOS-x64 # path: release # - uses: actions/download-artifact@v3 # with: # name: macOS-arm64 # path: release # - uses: actions/download-artifact@v3 # with: # name: windows-x64 # path: release # - uses: actions/download-artifact@v3 # with: # name: windows-x86 # path: release # # - name: Checkout Preview branch # uses: actions/checkout@v3 # with: # repository: "Suwayomi/Tachidesk-Server-preview" # ref: main # path: preview # token: ${{ secrets.DEPLOY_PREVIEW_TOKEN }} # # - name: Generate Tag Name # id: GenTagName # run: | # cd release # genTag=$(ls *.jar | sed -e's/Tachidesk-Server-\|.jar//g') # echo "$genTag" # echo "::set-output name=value::$genTag" # # - name: Create Tag # run: | # TAG="${{ steps.GenTagName.outputs.value }}" # echo "tag: $TAG" # cd preview # echo "{ \"latest\": \"$TAG\" }" > index.json # git add index.json # git config --global user.email \ # "github-actions[bot]@users.noreply.github.com" # git config --global user.name "github-actions[bot]" # git commit -m "Updated to $TAG" # git push origin main # # git tag $TAG # git push origin $TAG # # - name: Upload Preview Release # uses: softprops/action-gh-release@v1 # with: # token: ${{ secrets.DEPLOY_PREVIEW_TOKEN }} # repository: "Suwayomi/Tachidesk-Server-preview" # tag_name: ${{ steps.GenTagName.outputs.value }} # files: release/*