Enable multisrc support (#1352)
* Re-add multisrc support * Convert SFlix and DopeBox to multisrc * Re-enable multisrc tasks on workflows
This commit is contained in:
100
.github/workflows/build_pull_request.yml
vendored
100
.github/workflows/build_pull_request.yml
vendored
@ -18,9 +18,9 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
individualMatrix: ${{ steps.generate-matrices.outputs.individualMatrix }}
|
||||
#multisrcMatrix: ${{ steps.generate-matrices.outputs.multisrcMatrix }}
|
||||
multisrcMatrix: ${{ steps.generate-matrices.outputs.multisrcMatrix }}
|
||||
isIndividualChanged: ${{ steps.parse-changed-files.outputs.isIndividualChanged }}
|
||||
#isMultisrcChanged: ${{ steps.parse-changed-files.outputs.isMultisrcChanged }}
|
||||
isMultisrcChanged: ${{ steps.parse-changed-files.outputs.isMultisrcChanged }}
|
||||
env:
|
||||
CI_MODULE_GEN: true
|
||||
steps:
|
||||
@ -44,34 +44,36 @@ jobs:
|
||||
name: Parse changed files
|
||||
run: |
|
||||
isIndividualChanged=0
|
||||
#isMultisrcChanged=0
|
||||
isMultisrcChanged=0
|
||||
for changedFile in ${{ steps.get-changed-files.outputs.all }}; do
|
||||
if [[ ${changedFile} == src/* ]]; then
|
||||
isIndividualChanged=1
|
||||
# elif [[ ${changedFile} == multisrc/* ]]; then
|
||||
# isMultisrcChanged=1
|
||||
elif [[ ${changedFile} == multisrc/* ]]; then
|
||||
isMultisrcChanged=1
|
||||
elif [[ ${changedFile} == *.md ]]; then
|
||||
true
|
||||
else
|
||||
isIndividualChanged=1
|
||||
# isMultisrcChanged=1
|
||||
isMultisrcChanged=1
|
||||
break
|
||||
fi
|
||||
done
|
||||
echo "::set-output name=isIndividualChanged::$isIndividualChanged"
|
||||
#echo "::set-output name=isMultisrcChanged::$isMultisrcChanged"
|
||||
echo "isIndividualChanged=$isIndividualChanged" >> $GITHUB_OUTPUT
|
||||
echo "isMultisrcChanged=$isMultisrcChanged" >> $GITHUB_OUTPUT
|
||||
|
||||
# - name: Generate multisrc sources
|
||||
# if: ${{ steps.parse-changed-files.outputs.isMultisrcChanged == '1' }}
|
||||
# uses: gradle/gradle-command-action@v2
|
||||
# with:
|
||||
# arguments: :multisrc:generateExtensions
|
||||
- name: Generate multisrc sources
|
||||
if: ${{ steps.parse-changed-files.outputs.isMultisrcChanged == '1' }}
|
||||
uses: gradle/gradle-command-action@v2
|
||||
with:
|
||||
arguments: :multisrc:generateExtensions
|
||||
|
||||
- name: Get number of modules
|
||||
run: |
|
||||
set -x
|
||||
./gradlew -q projects | grep '.*extensions\:individual\:.*\:.*' > projects.txt
|
||||
./gradlew -q projects | grep '.*extensions\:\(individual\|multisrc\)\:.*\:.*' > projects.txt
|
||||
|
||||
echo "NUM_INDIVIDUAL_MODULES=$(cat projects.txt | grep '.*\:individual\:.*' | wc -l)" >> $GITHUB_ENV
|
||||
#echo "NUM_MULTISRC_MODULES=$(cat projects.txt | grep '.*\:multisrc\:.*' | wc -l)" >> $GITHUB_ENV
|
||||
echo "NUM_MULTISRC_MODULES=$(cat projects.txt | grep '.*\:multisrc\:.*' | wc -l)" >> $GITHUB_ENV
|
||||
|
||||
- id: generate-matrices
|
||||
name: Create output matrices
|
||||
@ -79,51 +81,51 @@ jobs:
|
||||
with:
|
||||
script: |
|
||||
const numIndividualModules = process.env.NUM_INDIVIDUAL_MODULES;
|
||||
//const numMultisrcModules = process.env.NUM_MULTISRC_MODULES;
|
||||
const numMultisrcModules = process.env.NUM_MULTISRC_MODULES;
|
||||
const chunkSize = process.env.CI_CHUNK_SIZE;
|
||||
|
||||
const numIndividualChunks = Math.ceil(numIndividualModules / chunkSize);
|
||||
//const numMultisrcChunks = Math.ceil(numMultisrcModules / chunkSize);
|
||||
const numMultisrcChunks = Math.ceil(numMultisrcModules / chunkSize);
|
||||
|
||||
console.log(`Individual modules: ${numIndividualModules} (${numIndividualChunks} chunks of ${chunkSize})`);
|
||||
//console.log(`Multi-source modules: ${numMultisrcModules} (${numMultisrcChunks} chunks of ${chunkSize})`);
|
||||
console.log(`Multi-source modules: ${numMultisrcModules} (${numMultisrcChunks} chunks of ${chunkSize})`);
|
||||
|
||||
core.setOutput('individualMatrix', { 'chunk': [...Array(numIndividualChunks).keys()] });
|
||||
//core.setOutput('multisrcMatrix', { 'chunk': [...Array(numMultisrcChunks).keys()] });
|
||||
core.setOutput('multisrcMatrix', { 'chunk': [...Array(numMultisrcChunks).keys()] });
|
||||
|
||||
#build_multisrc:
|
||||
# name: Build multisrc modules
|
||||
# needs: prepare
|
||||
# if: ${{ needs.prepare.outputs.isMultisrcChanged == '1' }}
|
||||
# runs-on: ubuntu-latest
|
||||
# strategy:
|
||||
# matrix: ${{ fromJSON(needs.prepare.outputs.multisrcMatrix) }}
|
||||
# steps:
|
||||
# - name: Checkout PR
|
||||
# uses: actions/checkout@v3
|
||||
build_multisrc:
|
||||
name: Build multisrc modules
|
||||
needs: prepare
|
||||
if: ${{ needs.prepare.outputs.isMultisrcChanged == '1' }}
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix: ${{ fromJSON(needs.prepare.outputs.multisrcMatrix) }}
|
||||
steps:
|
||||
- name: Checkout PR
|
||||
uses: actions/checkout@v3
|
||||
|
||||
# - name: Set up JDK
|
||||
# uses: actions/setup-java@v3
|
||||
# with:
|
||||
# java-version: 11
|
||||
# distribution: adopt
|
||||
- name: Set up JDK
|
||||
uses: actions/setup-java@v3
|
||||
with:
|
||||
java-version: 11
|
||||
distribution: adopt
|
||||
|
||||
# - name: Generate sources from the multi-source library
|
||||
# uses: gradle/gradle-command-action@v2
|
||||
# env:
|
||||
# CI_MODULE_GEN: "true"
|
||||
# with:
|
||||
# arguments: :multisrc:generateExtensions
|
||||
# cache-read-only: true
|
||||
- name: Generate sources from the multi-source library
|
||||
uses: gradle/gradle-command-action@v2
|
||||
env:
|
||||
CI_MODULE_GEN: "true"
|
||||
with:
|
||||
arguments: :multisrc:generateExtensions
|
||||
cache-read-only: true
|
||||
|
||||
# - name: Build extensions (chunk ${{ matrix.chunk }})
|
||||
# uses: gradle/gradle-command-action@v2
|
||||
# env:
|
||||
# CI_MULTISRC: "true"
|
||||
# CI_CHUNK_NUM: ${{ matrix.chunk }}
|
||||
# with:
|
||||
# arguments: assembleDebug
|
||||
# cache-read-only: true
|
||||
- name: Build extensions (chunk ${{ matrix.chunk }})
|
||||
uses: gradle/gradle-command-action@v2
|
||||
env:
|
||||
CI_MULTISRC: "true"
|
||||
CI_CHUNK_NUM: ${{ matrix.chunk }}
|
||||
with:
|
||||
arguments: assembleDebug
|
||||
cache-read-only: true
|
||||
|
||||
build_individual:
|
||||
name: Build individual modules
|
||||
|
109
.github/workflows/build_push.yml
vendored
109
.github/workflows/build_push.yml
vendored
@ -20,7 +20,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
individualMatrix: ${{ steps.generate-matrices.outputs.individualMatrix }}
|
||||
#multisrcMatrix: ${{ steps.generate-matrices.outputs.multisrcMatrix }}
|
||||
multisrcMatrix: ${{ steps.generate-matrices.outputs.multisrcMatrix }}
|
||||
env:
|
||||
CI_MODULE_GEN: true
|
||||
steps:
|
||||
@ -49,18 +49,18 @@ jobs:
|
||||
java-version: 11
|
||||
distribution: adopt
|
||||
|
||||
# - name: Generate multisrc sources
|
||||
# uses: gradle/gradle-command-action@v2
|
||||
# with:
|
||||
# arguments: :multisrc:generateExtensions
|
||||
- name: Generate multisrc sources
|
||||
uses: gradle/gradle-command-action@v2
|
||||
with:
|
||||
arguments: :multisrc:generateExtensions
|
||||
|
||||
- name: Get number of modules
|
||||
run: |
|
||||
set -x
|
||||
./gradlew -q projects | grep '.*extensions\:individual\:.*\:.*' > projects.txt
|
||||
./gradlew -q projects | grep '.*extensions\:\(individual\|multisrc\)\:.*\:.*' > projects.txt
|
||||
|
||||
echo "NUM_INDIVIDUAL_MODULES=$(cat projects.txt | grep '.*\:individual\:.*' | wc -l)" >> $GITHUB_ENV
|
||||
#echo "NUM_MULTISRC_MODULES=$(cat projects.txt | grep '.*\:multisrc\:.*' | wc -l)" >> $GITHUB_ENV
|
||||
echo "NUM_MULTISRC_MODULES=$(cat projects.txt | grep '.*\:multisrc\:.*' | wc -l)" >> $GITHUB_ENV
|
||||
|
||||
- id: generate-matrices
|
||||
name: Create output matrices
|
||||
@ -68,68 +68,66 @@ jobs:
|
||||
with:
|
||||
script: |
|
||||
const numIndividualModules = process.env.NUM_INDIVIDUAL_MODULES;
|
||||
//const numMultisrcModules = process.env.NUM_MULTISRC_MODULES;
|
||||
const numMultisrcModules = process.env.NUM_MULTISRC_MODULES;
|
||||
const chunkSize = process.env.CI_CHUNK_SIZE;
|
||||
|
||||
const numIndividualChunks = Math.ceil(numIndividualModules / chunkSize);
|
||||
//const numMultisrcChunks = Math.ceil(numMultisrcModules / chunkSize);
|
||||
const numMultisrcChunks = Math.ceil(numMultisrcModules / chunkSize);
|
||||
|
||||
console.log(`Individual modules: ${numIndividualModules} (${numIndividualChunks} chunks of ${chunkSize})`);
|
||||
//console.log(`Multi-source modules: ${numMultisrcModules} (${numMultisrcChunks} chunks of ${chunkSize})`);
|
||||
console.log(`Multi-source modules: ${numMultisrcModules} (${numMultisrcChunks} chunks of ${chunkSize})`);
|
||||
|
||||
core.setOutput('individualMatrix', { 'chunk': [...Array(numIndividualChunks).keys()] });
|
||||
//core.setOutput('multisrcMatrix', { 'chunk': [...Array(numMultisrcChunks).keys()] });
|
||||
core.setOutput('multisrcMatrix', { 'chunk': [...Array(numMultisrcChunks).keys()] });
|
||||
|
||||
#build_multisrc:
|
||||
# name: Build multisrc modules
|
||||
# needs: prepare
|
||||
# runs-on: ubuntu-latest
|
||||
# strategy:
|
||||
# matrix: ${{ fromJSON(needs.prepare.outputs.multisrcMatrix) }}
|
||||
# steps:
|
||||
# - name: Checkout master branch
|
||||
# uses: actions/checkout@v3
|
||||
# with:
|
||||
# ref: master
|
||||
build_multisrc:
|
||||
name: Build multisrc modules
|
||||
needs: prepare
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix: ${{ fromJSON(needs.prepare.outputs.multisrcMatrix) }}
|
||||
steps:
|
||||
- name: Checkout master branch
|
||||
uses: actions/checkout@v3
|
||||
|
||||
# - name: Set up JDK
|
||||
# uses: actions/setup-java@v3
|
||||
# with:
|
||||
# java-version: 11
|
||||
# distribution: adopt
|
||||
- name: Set up JDK
|
||||
uses: actions/setup-java@v3
|
||||
with:
|
||||
java-version: 11
|
||||
distribution: adopt
|
||||
|
||||
# - name: Prepare signing key
|
||||
# run: |
|
||||
# echo ${{ secrets.SIGNING_KEY }} | base64 -d > signingkey.jks
|
||||
- name: Prepare signing key
|
||||
run: |
|
||||
echo ${{ secrets.SIGNING_KEY }} | base64 -d > signingkey.jks
|
||||
|
||||
# - name: Generate sources from the multi-source library
|
||||
# uses: gradle/gradle-command-action@v2
|
||||
# env:
|
||||
# CI_MODULE_GEN: "true"
|
||||
# with:
|
||||
# arguments: :multisrc:generateExtensions
|
||||
- name: Generate sources from the multi-source library
|
||||
uses: gradle/gradle-command-action@v2
|
||||
env:
|
||||
CI_MODULE_GEN: "true"
|
||||
with:
|
||||
arguments: :multisrc:generateExtensions
|
||||
|
||||
# - name: Build extensions (chunk ${{ matrix.chunk }})
|
||||
# uses: gradle/gradle-command-action@v2
|
||||
# env:
|
||||
# CI_MULTISRC: "true"
|
||||
# CI_CHUNK_NUM: ${{ matrix.chunk }}
|
||||
# ALIAS: ${{ secrets.ALIAS }}
|
||||
# KEY_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }}
|
||||
# KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
|
||||
# with:
|
||||
# arguments: assembleRelease
|
||||
- name: Build extensions (chunk ${{ matrix.chunk }})
|
||||
uses: gradle/gradle-command-action@v2
|
||||
env:
|
||||
CI_MULTISRC: "true"
|
||||
CI_CHUNK_NUM: ${{ matrix.chunk }}
|
||||
ALIAS: ${{ secrets.ALIAS }}
|
||||
KEY_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }}
|
||||
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
|
||||
with:
|
||||
arguments: assembleRelease
|
||||
|
||||
# - name: Upload APKs (chunk ${{ matrix.chunk }})
|
||||
# uses: actions/upload-artifact@v2
|
||||
# if: "github.repository == 'jmir1/aniyomi-extensions'"
|
||||
# with:
|
||||
# name: "multisrc-apks-${{ matrix.chunk }}"
|
||||
# path: "**/*.apk"
|
||||
# retention-days: 1
|
||||
- name: Upload APKs (chunk ${{ matrix.chunk }})
|
||||
uses: actions/upload-artifact@v3
|
||||
if: "github.repository == 'jmir1/aniyomi-extensions'"
|
||||
with:
|
||||
name: "multisrc-apks-${{ matrix.chunk }}"
|
||||
path: "**/*.apk"
|
||||
retention-days: 1
|
||||
|
||||
# - name: Clean up CI files
|
||||
# run: rm signingkey.jks
|
||||
- name: Clean up CI files
|
||||
run: rm signingkey.jks
|
||||
|
||||
build_individual:
|
||||
name: Build individual modules
|
||||
@ -177,6 +175,7 @@ jobs:
|
||||
name: Publish repo
|
||||
needs:
|
||||
- build_individual
|
||||
- build_multisrc
|
||||
if: "github.repository == 'jmir1/aniyomi-extensions'"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
Reference in New Issue
Block a user