kopia lustrzana https://github.com/meshtastic/Meshtastic-Android
				
				
				
			add release build action
							rodzic
							
								
									0570277ceb
								
							
						
					
					
						commit
						c7666f22f9
					
				| 
						 | 
				
			
			@ -0,0 +1,108 @@
 | 
			
		|||
name: Make Release
 | 
			
		||||
on:
 | 
			
		||||
  workflow_dispatch:
 | 
			
		||||
    inputs:
 | 
			
		||||
      version:
 | 
			
		||||
        description: "Release version (Example: 1.0.0, must match app/gradle.build 'versionName')"
 | 
			
		||||
        required: true
 | 
			
		||||
        default: '1.0.0'
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  release-build:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
 | 
			
		||||
    - name: Checkout code
 | 
			
		||||
      uses: actions/checkout@v2
 | 
			
		||||
      with:
 | 
			
		||||
        submodules: 'recursive'
 | 
			
		||||
 | 
			
		||||
    - name: Load secrets
 | 
			
		||||
      run: |
 | 
			
		||||
        rm ./app/google-services.json
 | 
			
		||||
        echo $GSERVICES > ./app/google-services.json
 | 
			
		||||
        rm ./app/src/main/res/values/mapbox-token.xml
 | 
			
		||||
        echo "<resources>\n    <string name=\"mapbox_access_token\">$MAPBOXTOKEN</string>\n</resources>" > ./app/src/main/res/values/mapbox-token.xml
 | 
			
		||||
        mkdir -p ~/.gradle
 | 
			
		||||
        echo "MAPBOX_DOWNLOADS_TOKEN=$MAPBOXTOKEN" >> ~/.gradle/gradle.properties
 | 
			
		||||
        echo $KEYSTORE | base64 -di > ./app/$KEYSTORE_FILENAME
 | 
			
		||||
        echo "$KEYSTORE_PROPERTIES" > ./keystore.properties
 | 
			
		||||
      env:
 | 
			
		||||
          GSERVICES: ${{ secrets.GSERVICES }}
 | 
			
		||||
          MAPBOXTOKEN: ${{ secrets.MAPBOXTOKEN }}
 | 
			
		||||
          KEYSTORE: ${{ secrets.KEYSTORE }}
 | 
			
		||||
          KEYSTORE_FILENAME: ${{ secrets.KEYSTORE_FILENAME }}
 | 
			
		||||
          KEYSTORE_PROPERTIES: ${{ secrets.KEYSTORE_PROPERTIES }}
 | 
			
		||||
 | 
			
		||||
    - name: Mock curfirmware version for CI
 | 
			
		||||
      run: |
 | 
			
		||||
        rm ./app/src/main/res/values/curfirmwareversion.xml
 | 
			
		||||
        cp ./app/special/curfirmwareversion.xml ./app/src/main/res/values/
 | 
			
		||||
    - name: Set up JDK 11
 | 
			
		||||
      uses: actions/setup-java@v2
 | 
			
		||||
      with:
 | 
			
		||||
        java-version: 11
 | 
			
		||||
        distribution: 'adopt'
 | 
			
		||||
        # Note: we don't use caches on release builds because we don't want to accidentally not have a virgin build machine
 | 
			
		||||
 | 
			
		||||
    - name: Fetch firmware latest tag_name
 | 
			
		||||
      id: firmware_latest
 | 
			
		||||
      uses: gregziegan/fetch-latest-release@v2.0.0
 | 
			
		||||
      with:
 | 
			
		||||
        repo_path: meshtastic/Meshtastic-device
 | 
			
		||||
        github_token: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
 | 
			
		||||
    - name: Get version strings from tags
 | 
			
		||||
      run: echo "FIRMWARE_VERSION=$(echo ${{ steps.firmware_latest.outputs.tag_name }}|sed -e 's/^v//')" >> $GITHUB_ENV
 | 
			
		||||
 | 
			
		||||
    - name: Pull firmware latest
 | 
			
		||||
      uses: dsaltares/fetch-gh-release-asset@master
 | 
			
		||||
      with:
 | 
			
		||||
        repo: meshtastic/Meshtastic-device
 | 
			
		||||
        file: firmware-${{ env.FIRMWARE_VERSION }}.zip
 | 
			
		||||
        target: firmware.zip
 | 
			
		||||
        token: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
 | 
			
		||||
    - name: Unzip firmware into assets/firmware
 | 
			
		||||
      run: |
 | 
			
		||||
        rm -f app/src/main/assets/firmware
 | 
			
		||||
        mkdir -p app/src/main/assets/firmware
 | 
			
		||||
        unzip -qq firmware.zip 'firmware-*.bin' 'spiffs-*.bin' -d app/src/main/assets/firmware
 | 
			
		||||
        rm firmware.zip
 | 
			
		||||
    - name: Validate Gradle wrapper
 | 
			
		||||
      uses: gradle/wrapper-validation-action@v1
 | 
			
		||||
 | 
			
		||||
    - name: Build Release
 | 
			
		||||
      run: ./gradlew assembleRelease
 | 
			
		||||
 | 
			
		||||
#    - name: Upload Release to Play Store
 | 
			
		||||
#      uses: r0adkll/upload-google-play@v1
 | 
			
		||||
#      with:
 | 
			
		||||
#        serviceAccountJsonPlainText: ${{ secrets.GSERVICES }}
 | 
			
		||||
#        packageName: # TODO put your package name here
 | 
			
		||||
#        releaseFiles: app/build/outputs/bundle/release/app-release.apk
 | 
			
		||||
#        track: # TODO specify track here
 | 
			
		||||
 | 
			
		||||
    - name: Create GitHub release
 | 
			
		||||
      uses: actions/create-release@v1
 | 
			
		||||
      id: create_release
 | 
			
		||||
      with:
 | 
			
		||||
        draft: true
 | 
			
		||||
        prerelease: true
 | 
			
		||||
        release_name: ${{ github.event.inputs.version}} alpha
 | 
			
		||||
        tag_name: ${{ github.event.inputs.version}}
 | 
			
		||||
        body: |
 | 
			
		||||
          Autogenerated by github action, developer should edit as required before publishing...
 | 
			
		||||
      env:
 | 
			
		||||
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
 | 
			
		||||
    - name: Add APK to release
 | 
			
		||||
      uses: actions/upload-release-asset@v1
 | 
			
		||||
      env:
 | 
			
		||||
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
      with:
 | 
			
		||||
        upload_url: ${{ steps.create_release.outputs.upload_url }}
 | 
			
		||||
        asset_path: app/build/outputs/apk/release/app-release.apk
 | 
			
		||||
        asset_name: app-release-${{ github.event.inputs.version}}.apk
 | 
			
		||||
        asset_content_type: application/zip
 | 
			
		||||
        
 | 
			
		||||
		Ładowanie…
	
		Reference in New Issue