name: CI build on: push: branches: - master jobs: check_wrapper: name: Validate Gradle Wrapper runs-on: ubuntu-latest steps: - name: Clone repo uses: actions/checkout@v2 - name: Validate Gradle Wrapper uses: gradle/wrapper-validation-action@v1 build: name: Build artifacts and deploy preview 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.5.0 with: access_token: ${{ github.token }} - name: Checkout master branch uses: actions/checkout@v2 with: ref: master path: master 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 master mkdir -p ~/.gradle cp .github/runner-files/ci-gradle.properties ~/.gradle/gradle.properties - name: Download android.jar run: | cd master curl https://raw.githubusercontent.com/AriaMoradi/Tachidesk/android-jar/android.jar -o AndroidCompat/lib/android.jar - name: Cache node_modules uses: actions/cache@v2 with: path: | **/react/node_modules key: ${{ runner.os }}-${{ hashFiles('**/react/yarn.lock') }} # - name: Build and copy webUI, Build Jar # uses: eskatos/gradle-command-action@v1 # with: # build-root-directory: master # wrapper-directory: master # arguments: :webUI:copyBuild :server:shadowJar --stacktrace # wrapper-cache-enabled: true # dependencies-cache-enabled: true # configuration-cache-enabled: true - name: Mock Build and copy webUI, Build Jar run: | mkdir -p master/server/build cd master/server/build echo "test" > Tachidesk-v0.3.8-r583.jar - name: Generate Tag Name id: GenTagName run: | cd master/server/build genTag=$(ls *.jar | sed -e's/Tachidesk-\|.jar//g') echo "$genTag" echo "::set-output name=value::$genTag" # - name: Create tag # uses: actions/github-script@v3 # env: # TAG: ${{ steps.GenTagName.value }} # with: # github-token: ${{ github.DEPLOY_PREVIEW_TOKEN }} # script: | # const { TAG } = process.env # # github.git.createTag({ # owner: "Suwayomi", # repo: "Tachidesk", # tag: TAG, # }) # - name: make windows packages # run: | # cd master/scripts # ./windows-bundler.sh win32 # ./windows-bundler.sh win64 - name: Mock make windows packages run: | cd master/server/build echo test > Tachidesk-v0.3.8-r580.zip - name: Checkout preview branch uses: actions/checkout@v2 with: repository: 'Suwayomi/Tachidesk-preview' ref: main path: preview token: ${{ secrets.DEPLOY_PREVIEW_TOKEN }} - name: Create Tag run: | TAG="${{ steps.GenTagName.outputs.value }}" echo "tag: $TAG" cd preview echo "{ \"latest\": \"$TAG\" }" > index.json git add index.json git commit -m "Updated to $TAG" git push origin main git tag $TAG git push origin $TAG - name: Upload Preview Release uses: ncipollo/release-action@v1 with: token: ${{ secrets.DEPLOY_PREVIEW_TOKEN }} artifacts: "master/server/build/*.jar,master/server/build/*.zip" owner: "Suwayomi" repo: "Tachidesk-preview" tag: ${{ steps.GenTagName.outputs.value }} # - name: Upload Release # uses: xresloader/upload-to-github-release@v1 # env: # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # with: # file: "master/server/build/*.jar;master/server/build/*.zip" # draft: false # verbose: true