mirror of
https://github.com/plebbit/seedit.git
synced 2026-02-13 07:21:05 -05:00
157 lines
5.1 KiB
YAML
157 lines
5.1 KiB
YAML
# docs https://github.com/marketplace/actions/create-release
|
|
# docs https://github.com/ncipollo/release-action
|
|
# docs https://docs.github.com/en/actions/using-jobs/choosing-the-runner-for-a-job#choosing-github-hosted-runners
|
|
|
|
name: release
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- 'v*'
|
|
|
|
jobs:
|
|
linux:
|
|
runs-on: ubuntu-20.04
|
|
permissions:
|
|
contents: write
|
|
steps:
|
|
# electron build
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
# needed for git commit history changelog
|
|
fetch-depth: 0
|
|
- uses: actions/setup-node@v2
|
|
with:
|
|
node-version: 18
|
|
- run: yarn install --frozen-lockfile
|
|
# make sure the ipfs executable is executable
|
|
- run: node electron/download-ipfs && sudo chmod +x bin/linux/ipfs
|
|
- run: CI='' yarn build
|
|
- run: yarn electron:build:linux
|
|
- run: ls dist
|
|
|
|
# publish version release
|
|
- run: node scripts/release-body > release-body.txt
|
|
- uses: ncipollo/release-action@v1
|
|
with:
|
|
artifacts: 'dist/seedit*.AppImage,dist/seedit-html*.zip'
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
replacesArtifacts: true
|
|
bodyFile: "release-body.txt"
|
|
allowUpdates: true
|
|
|
|
mac:
|
|
runs-on: macOS-13
|
|
permissions:
|
|
contents: write
|
|
steps:
|
|
# electron build
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
# needed for git commit history changelog
|
|
fetch-depth: 0
|
|
- uses: actions/setup-node@v2
|
|
with:
|
|
node-version: 18
|
|
|
|
# install missing dep for sqlite
|
|
- run: python3 -m ensurepip
|
|
- run: pip install setuptools
|
|
|
|
- run: yarn install --frozen-lockfile
|
|
# make sure the ipfs executable is executable
|
|
- run: node electron/download-ipfs && sudo chmod +x bin/mac/ipfs
|
|
- run: CI='' yarn build
|
|
- run: yarn electron:build:mac
|
|
- run: ls dist
|
|
|
|
# publish version release
|
|
- run: node scripts/release-body > release-body.txt
|
|
- uses: ncipollo/release-action@v1
|
|
with:
|
|
artifacts: 'dist/seedit*.dmg'
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
replacesArtifacts: true
|
|
bodyFile: "release-body.txt"
|
|
allowUpdates: true
|
|
|
|
windows:
|
|
runs-on: windows-2022
|
|
permissions:
|
|
contents: write
|
|
steps:
|
|
# electron build
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
# needed for git commit history changelog
|
|
fetch-depth: 0
|
|
- uses: actions/setup-node@v2
|
|
with:
|
|
node-version: 18
|
|
- run: yarn install --frozen-lockfile
|
|
- run: yarn build
|
|
- run: yarn electron:build:windows
|
|
- run: dir dist
|
|
|
|
# publish version release
|
|
- run: node scripts/release-body > release-body.txt
|
|
- uses: ncipollo/release-action@v1
|
|
with:
|
|
artifacts: 'dist/seedit*.exe'
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
replacesArtifacts: true
|
|
bodyFile: "release-body.txt"
|
|
allowUpdates: true
|
|
|
|
android:
|
|
runs-on: ubuntu-20.04
|
|
permissions:
|
|
contents: write
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
# needed to use 'git tag' and get all tags and for git commit history changelog
|
|
fetch-depth: 0
|
|
- uses: actions/setup-java@v3
|
|
with:
|
|
distribution: 'zulu'
|
|
java-version: '17'
|
|
- uses: gradle/gradle-build-action@v2
|
|
with:
|
|
gradle-version: 7.6
|
|
- uses: actions/setup-node@v2
|
|
with:
|
|
node-version: 18
|
|
- run: sudo apt install -y apksigner zipalign
|
|
|
|
# build react app
|
|
- run: yarn install --frozen-lockfile
|
|
- run: CI='' yarn build
|
|
# set android versionCode and versionName
|
|
- run: sed -i "s/versionCode 1/versionCode $(git tag | wc -l)/" ./android/app/build.gradle
|
|
- run: sed -i "s/versionName \"1.0\"/versionName \"$(node -e "console.log(require('./package.json').version)")\"/" ./android/app/build.gradle
|
|
- run: cat ./android/app/build.gradle
|
|
# build apk
|
|
- run: npx cap update
|
|
- run: npx cap copy
|
|
- run: cd android && gradle bundle
|
|
- run: cd android && ./gradlew assembleRelease
|
|
# optimize apk
|
|
- run: cd android/app/build/outputs/apk/release && zipalign 4 app-release-unsigned.apk app-release-unsigned-zip.apk
|
|
# sign apk
|
|
# to create keystore: keytool -genkey -v -keystore plebbit.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias release
|
|
- run: cd android/app/build/outputs/apk/release && apksigner sign --ks ../../../../../plebbit.keystore --ks-pass pass:${{ secrets.PLEBBIT_REACT_KEYSTORE_PASSWORD }} --ks-key-alias release --out app-release-signed.apk app-release-unsigned-zip.apk
|
|
# move apk to dist folder
|
|
- run: mkdir -p dist && mv android/app/build/outputs/apk/release/app-release-signed.apk dist/seedit-$(node -e "console.log(require('./package.json').version)").apk
|
|
- run: ls dist
|
|
|
|
# publish version release
|
|
- run: node scripts/release-body > release-body.txt
|
|
- uses: ncipollo/release-action@v1
|
|
with:
|
|
artifacts: 'dist/seedit*.apk'
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
replacesArtifacts: true
|
|
bodyFile: "release-body.txt"
|
|
allowUpdates: true
|