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:
Claudemirovsky
2023-03-02 08:37:11 -03:00
committed by GitHub
parent d42f5c6cc6
commit ec19a31c3d
39 changed files with 756 additions and 1209 deletions

View File

@ -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

View File

@ -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: