111 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| name: CI
 | |
| 
 | |
| on:
 | |
|   push:
 | |
|     branches:
 | |
|       - master
 | |
|     paths-ignore:
 | |
|       - '**.md'
 | |
|       - '.github/workflows/issue_moderator.yml'
 | |
|   workflow_dispatch:
 | |
| 
 | |
| concurrency:
 | |
|   group: ${{ github.workflow }}
 | |
|   cancel-in-progress: true
 | |
| 
 | |
| env:
 | |
|   CI_CHUNK_SIZE: 65
 | |
| 
 | |
| jobs:
 | |
|   prepare:
 | |
|     name: Prepare job
 | |
|     runs-on: arch
 | |
|     env:
 | |
|       CI_MODULE_GEN: true
 | |
|     steps:
 | |
|       - name: Clone repo
 | |
|         uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
 | |
| 
 | |
|   build_individual:
 | |
|     name: Build individual modules
 | |
|     needs: prepare
 | |
|     runs-on: arch
 | |
|     steps:
 | |
|       - name: Checkout master branch
 | |
|         uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
 | |
| 
 | |
|       - name: Set up JDK
 | |
|         uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4.7.0
 | |
|         with:
 | |
|           java-version: 17
 | |
|           distribution: temurin
 | |
| 
 | |
|       - name: Prepare signing key
 | |
|         run: |
 | |
|           echo ${{ secrets.SIGNING_KEY }} | base64 -d > signingkey.jks
 | |
| 
 | |
|       - name: Set up Gradle
 | |
|         uses: gradle/actions/setup-gradle@94baf225fe0a508e581a564467443d0e2379123b # v4.3.0
 | |
| 
 | |
|       - name: Build extensions
 | |
|         env:
 | |
|           ALIAS: ${{ secrets.ALIAS }}
 | |
|           KEY_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }}
 | |
|           KEY_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }}
 | |
|         run: ./gradlew -p src assembleRelease
 | |
|         
 | |
| 
 | |
|       - name: Upload APKs
 | |
|         uses: actions/upload-artifact@v3
 | |
|         with:
 | |
|           name: "individual-apks"
 | |
|           path: "**/*.apk"
 | |
|           retention-days: 1
 | |
| 
 | |
|       - name: Clean up CI files
 | |
|         run: rm signingkey.jks
 | |
| 
 | |
|   publish_repo:
 | |
|     name: Publish repo
 | |
|     needs:
 | |
|       - build_individual
 | |
|     runs-on: arch
 | |
|     steps:
 | |
|       - name: Download APK artifacts
 | |
|         uses: actions/download-artifact@v3 # v4.1.8
 | |
|         with:
 | |
|           path: ~/apk-artifacts
 | |
| 
 | |
|       - name: Set up JDK
 | |
|         uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4.7.0
 | |
|         with:
 | |
|           java-version: 17
 | |
|           distribution: temurin
 | |
| 
 | |
|       - name: Checkout master branch
 | |
|         uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
 | |
|         with:
 | |
|           ref: master
 | |
|           path: master
 | |
| 
 | |
|       - name: Create repo artifacts
 | |
|         run: |
 | |
|           cd master
 | |
|           python ./.github/scripts/move-built-apks.py
 | |
|           INSPECTOR_LINK="$(curl -s "https://api.github.com/repos/keiyoushi/extensions-inspector/releases/latest" | jq -r '.assets[0].browser_download_url')"
 | |
|           curl -L "$INSPECTOR_LINK" -o ./Inspector.jar
 | |
|           java -jar ./Inspector.jar "repo/apk" "output.json" "tmp"
 | |
|           python ./.github/scripts/create-repo.py
 | |
| 
 | |
|       - name: Checkout repo branch
 | |
|         uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
 | |
|         with:
 | |
|           ref: repo
 | |
|           path: repo
 | |
| 
 | |
|       - name: Deploy repo
 | |
|         run: |
 | |
|           cd repo
 | |
|           ../master/.github/scripts/commit-repo.sh
 | |
|           rm -r ~/apk-artifacts
 |