Build-Desktop-Release #37
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This is the main desktop application release workflow for both nightly and beta/stable releases. | |
name: Build-Desktop-Release | |
on: | |
workflow_dispatch: | |
inputs: | |
build-target: | |
description: 'Build Target (Release Type)' | |
type: choice | |
required: true | |
options: | |
- beta | |
- nightly | |
- non-release | |
default: "non-release" | |
git-ref: | |
description: "Release Git Ref (Which branch or tag to build?)" | |
required: true | |
default: "master" | |
is-draft: | |
description: 'Draft Release? (Beta only, Nightly will always be a non-draft)' | |
type: boolean | |
required: true | |
default: true | |
is-pre-release: | |
description: 'Pre Release? (labeled as "PreRelease")' | |
type: boolean | |
required: true | |
default: true | |
enable-file-sync-production: | |
description: 'File sync production mode' | |
type: boolean | |
required: true | |
default: true | |
enable-plugins: | |
description: 'Build with plugin system support' | |
type: boolean | |
required: true | |
default: true | |
build-android: | |
description: 'Build Android App' | |
type: boolean | |
required: true | |
default: true | |
schedule: # Every workday at the 2 P.M. (UTC) we run a scheduled nightly build | |
- cron: '0 14 * * MON-FRI' | |
env: | |
CLOJURE_VERSION: '1.11.1.1413' | |
NODE_VERSION: '18' | |
JAVA_VERSION: '11' | |
jobs: | |
compile-cljs: | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Check build options | |
if: ${{ github.event_name == 'workflow_dispatch' && (github.event.inputs.build-target == 'nightly' || github.event.inputs.build-target == 'beta') && github.event.inputs.git-ref != 'master' }} | |
run: | | |
echo "::error title=CheckFail::Nightly and Beta Release MUST be built from master" | |
exit 1 | |
- name: Check out Git repository | |
uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.event.inputs.git-ref }} | |
- name: Install Node.js, NPM and Yarn | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
- name: Get yarn cache directory path | |
id: yarn-cache-dir-path | |
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT | |
- name: Cache yarn cache directory | |
uses: actions/cache@v3 | |
id: yarn-cache | |
with: | |
path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | |
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | |
restore-keys: | | |
${{ runner.os }}-yarn- | |
- name: Setup Java JDK | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'zulu' | |
java-version: ${{ env.JAVA_VERSION }} | |
- name: Cache clojure deps | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.m2/repository | |
~/.gitlibs | |
key: ${{ runner.os }}-clojure-lib-${{ hashFiles('**/deps.edn') }} | |
- name: Setup clojure | |
uses: DeLaGuardo/setup-clojure@10.1 | |
with: | |
cli: ${{ env.CLOJURE_VERSION }} | |
- name: Retrieve tag version | |
id: ref | |
run: | | |
pkgver=$(node ./scripts/get-pkg-version.js "${{ github.event.inputs.build-target }}") | |
echo "version=$pkgver" >> $GITHUB_OUTPUT | |
- name: Do Not Overwrite Existing Release | |
if: ${{ github.event.inputs.build-target == 'beta' }} | |
run: | | |
if curl -f "https://api.github.com/repos/${{ github.repository }}/releases/tags/${{ steps.ref.outputs.version }}" &>/dev/null; then | |
echo "::error title=CheckFail::Release already exists" | |
exit 1 | |
fi | |
- name: Update Nightly APP Version | |
if: ${{ github.event.inputs.build-target == 'nightly' || github.event_name == 'schedule' }} | |
run: | | |
sed -i 's/defonce version ".*"/defonce version "${{ steps.ref.outputs.version }}"/g' src/main/frontend/version.cljs | |
- name: Set Build Environment Variables (only when workflow_dispatch) | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
# if scheduled, use default settings | |
run: | | |
echo "ENABLE_PLUGINS=${{ github.event_name == 'schedule' || github.event.inputs.enable-plugins == 'true' }}" >> $GITHUB_ENV | |
echo "ENABLE_FILE_SYNC_PRODUCTION=${{ github.event_name == 'schedule' || github.event.inputs.enable-file-sync-production == 'true' }}" >> $GITHUB_ENV | |
- name: Compile CLJS | |
run: yarn install && gulp build && yarn cljs:release-electron | |
env: | |
LOGSEQ_SENTRY_DSN: ${{ secrets.LOGSEQ_SENTRY_DSN }} | |
LOGSEQ_POSTHOG_TOKEN: ${{ secrets.LOGSEQ_POSTHOG_TOKEN }} | |
- name: Update APP Version | |
run: | | |
sed -i 's/"version": "0.0.1"/"version": "${{ steps.ref.outputs.version }}"/g' ./package.json | |
working-directory: ./static | |
- name: Display Package.json | |
run: cat ./package.json | |
working-directory: ./static | |
- name: Save VERSION file | |
run: echo "${{ steps.ref.outputs.version }}" > ./VERSION | |
working-directory: ./static | |
- name: List Files | |
run: ls -al | |
working-directory: ./static | |
- name: Upload Sentry Sourcemaps (beta only) | |
if: ${{ github.repository == 'logseq/logseq' && github.event_name == 'workflow_dispatch' && github.event.inputs.build-target == 'beta' }} | |
run: | | |
curl -sL https://sentry.io/get-cli/ | bash | |
release_name="logseq@${{ steps.ref.outputs.version }}" | |
sentry-cli releases new "${release_name}" | |
sentry-cli releases files "${release_name}" upload-sourcemaps --ext map --ext js ./static/js --url-prefix '~/static/js' | |
sentry-cli releases finalize "${release_name}" | |
env: | |
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} | |
SENTRY_ORG: logseq | |
SENTRY_PROJECT: logseq | |
- name: Cache Static File | |
uses: actions/upload-artifact@v3 | |
with: | |
name: static | |
path: static | |
e2e-test: | |
name: E2E Test Shard ${{ matrix.shard }} | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
shard: [1, 2, 3] | |
needs: [ compile-cljs ] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Download The Static Asset | |
uses: actions/download-artifact@v3 | |
with: | |
name: static | |
path: static | |
- name: Set up Node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
cache: 'yarn' | |
cache-dependency-path: | | |
yarn.lock | |
static/yarn.lock | |
- name: Fetch yarn deps for E2E test | |
run: | | |
yarn install | |
(cd static && yarn install && yarn rebuild:all) | |
env: | |
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: true | |
- name: Install Fluxbox | |
run: sudo apt-get update && sudo apt-get install -y fluxbox | |
# Emulate a virtual framebuffer on machines with no display hardware | |
- name: Run XVFB | |
run: Xvfb :1 -screen 0 1024x768x24 >/dev/null 2>&1 & | |
# Start a lightweight window manager to simulate window actions (maximize,restore etc) | |
- name: Start Fluxbox | |
run: DISPLAY=:1.0 fluxbox >/dev/null 2>&1 & | |
- name: Run Playwright test | |
run: DISPLAY=:1.0 npx playwright test --reporter github --shard=${{ matrix.shard }}/3 | |
env: | |
LOGSEQ_CI: true | |
DEBUG: "pw:api" | |
RELEASE: true # skip dev only test | |
build-linux-x64: | |
runs-on: ubuntu-20.04 | |
needs: [ compile-cljs ] | |
steps: | |
- name: Download The Static Asset | |
uses: actions/download-artifact@v3 | |
with: | |
name: static | |
path: static | |
- name: Retrieve tag version | |
id: ref | |
run: | | |
pkgver=$(cat ./static/VERSION) | |
echo "version=$pkgver" >> $GITHUB_OUTPUT | |
- name: Install Node.js, NPM and Yarn | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
# - name: Cache Node Modules | |
# uses: actions/cache@v3 | |
# with: | |
# path: | | |
# **/node_modules | |
# key: ${{ runner.os }}-node-modules | |
- name: Build/Release Electron App | |
run: yarn install && yarn electron:make | |
working-directory: ./static | |
- name: Save artifacts | |
run: | | |
mkdir -p builds | |
# NOTE: save VERSION file to builds directory | |
cp static/VERSION ./builds/VERSION | |
mv static/out/make/*-*.AppImage ./builds/Logseq-linux-x64-${{ steps.ref.outputs.version }}.AppImage | |
mv static/out/make/zip/linux/x64/*-linux-x64-*.zip ./builds/Logseq-linux-x64-${{ steps.ref.outputs.version }}.zip | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: logseq-linux-x64-builds | |
path: builds | |
build-linux-arm64: | |
runs-on: ubuntu-20.04 | |
needs: [ compile-cljs ] | |
steps: | |
- name: Download The Static Asset | |
uses: actions/download-artifact@v3 | |
with: | |
name: static | |
path: static | |
- name: Retrieve tag version | |
id: ref | |
run: | | |
pkgver=$(cat ./static/VERSION) | |
echo "version=$pkgver" >> $GITHUB_OUTPUT | |
- name: Install Node.js, NPM and Yarn | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
- name: Fetch deps | |
env: | |
npm_config_arch: arm64 | |
run: | | |
yarn install --target_arch=arm64 --target_platform=linux | |
rsapi_version=`node -e 'console.log(require("@logseq/rsapi/package.json").optionalDependencies["@logseq/rsapi-linux-arm64-gnu"])'` | |
temp_dir=`mktemp -d` | |
cd "$temp_dir" | |
echo '{"dependencies": {"@logseq/rsapi-linux-arm64-gnu": "'"$rsapi_version"'"}}' > package.json | |
yarn install --ignore-platform | |
cd - | |
mv "$temp_dir/node_modules/@logseq/rsapi-linux-arm64-gnu" node_modules/@logseq/rsapi-linux-arm64-gnu | |
rm -rf "$temp_dir" "node_modules/@logseq/rsapi-linux-x64-gnu" | |
working-directory: ./static | |
- name: Build/Release Electron App | |
run: yarn electron:make-linux-arm64 | |
working-directory: ./static | |
- name: Save artifacts | |
run: | | |
mkdir -p builds | |
# NOTE: save VERSION file to builds directory | |
cp static/VERSION ./builds/VERSION | |
# mv static/out/make/*-*.AppImage ./builds/Logseq-linux-arm64-${{ steps.ref.outputs.version }}.AppImage | |
mv static/out/make/zip/linux/arm64/*-linux-arm64-*.zip ./builds/Logseq-linux-arm64-${{ steps.ref.outputs.version }}.zip | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: logseq-linux-arm64-builds | |
path: builds | |
build-windows: | |
runs-on: windows-latest | |
needs: [ compile-cljs ] | |
steps: | |
- name: Download The Static Asset | |
uses: actions/download-artifact@v3 | |
with: | |
name: static | |
path: static | |
- name: Retrieve tag version | |
id: ref | |
run: echo "version=$(cat ./static/VERSION)" >> $env:GITHUB_OUTPUT | |
- name: Install Node.js, NPM and Yarn | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
# - name: Cache Node Modules | |
# uses: actions/cache@v3 | |
# with: | |
# path: | | |
# **/node_modules | |
# key: ${{ runner.os }}-node-modules | |
- name: Deps Electron app | |
run: yarn install | |
working-directory: ./static | |
- name: Fix Deps Electron app | |
run: yarn run postinstall | |
working-directory: ./static/node_modules/dugite/ | |
- name: Build/Release Electron app | |
run: yarn electron:make | |
working-directory: ./static | |
#env: | |
# CODE_SIGN_CERTIFICATE_FILE: ../codesign.pfx | |
# CODE_SIGN_CERTIFICATE_PASSWORD: ${{ secrets.CODE_SIGN_CERTIFICATE_PASSWORD }} | |
- name: Save Artifact for Code Signing | |
run: | | |
mkdir builds | |
mv static\out\make\squirrel.windows\x64\*.exe builds\Logseq-win-x64-${{ steps.ref.outputs.version }}.exe | |
- name: Upload Artifact for Code Signing | |
uses: actions/upload-artifact@v3 | |
with: | |
name: logseq-win64-unsigned-builds | |
path: builds | |
- name: Save Artifact | |
run: | | |
rm builds\*.exe | |
mv static\out\make\squirrel.windows\x64\*.nupkg builds\Logseq-win-x64-${{ steps.ref.outputs.version }}-full.nupkg | |
mv static\out\make\zip\win32\x64\*.zip builds\Logseq-win-x64-${{ steps.ref.outputs.version }}.zip | |
mv static\out\make\squirrel.windows\x64\RELEASES builds\RELEASES | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: logseq-win64-builds | |
path: builds | |
build-macos-x64: | |
needs: [ compile-cljs ] | |
runs-on: macos-11 | |
steps: | |
- name: Download The Static Asset | |
uses: actions/download-artifact@v3 | |
with: | |
name: static | |
path: static | |
- name: Retrieve tag version | |
id: ref | |
run: | | |
pkgver=$(cat ./static/VERSION) | |
echo "version=$pkgver" >> $GITHUB_OUTPUT | |
- name: List Static Files | |
run: ls -al ./static | |
- name: Install Node.js, NPM and Yarn | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
- name: Install Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.11' | |
- name: Get yarn cache directory path | |
id: yarn-cache-dir-path | |
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT | |
- name: Cache yarn cache directory | |
uses: actions/cache@v3 | |
id: yarn-cache | |
with: | |
path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | |
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | |
restore-keys: | | |
${{ runner.os }}-yarn- | |
- name: Signing By Apple Developer ID | |
if: ${{ github.repository == 'logseq/logseq' }} | |
uses: apple-actions/import-codesign-certs@v1 | |
with: | |
p12-file-base64: ${{ secrets.APPLE_CERTIFICATES_P12 }} | |
p12-password: ${{ secrets.APPLE_CERTIFICATES_P12_PASSWORD }} | |
# - name: Cache Node Modules | |
# uses: actions/cache@v3 | |
# with: | |
# path: | | |
# **/node_modules | |
# key: ${{ runner.os }}-node-modules | |
- name: Build/Release Electron App for x64 | |
run: yarn install && yarn electron:make | |
working-directory: ./static | |
env: | |
APPLE_ID: ${{ secrets.APPLE_ID_EMAIL }} | |
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} | |
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} | |
- name: Save x64 artifacts | |
run: | | |
mkdir -p builds | |
mv static/out/make/Logseq.dmg ./builds/Logseq-darwin-x64-${{ steps.ref.outputs.version }}.dmg | |
mv static/out/make/zip/darwin/x64/*.zip ./builds/Logseq-darwin-x64-${{ steps.ref.outputs.version }}.zip | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: logseq-darwin-x64-builds | |
path: builds | |
build-macos-arm64: | |
needs: [ compile-cljs ] | |
runs-on: macos-11 | |
steps: | |
- name: Download The Static Asset | |
uses: actions/download-artifact@v3 | |
with: | |
name: static | |
path: static | |
- name: Retrieve tag version | |
id: ref | |
run: | | |
pkgver=$(cat ./static/VERSION) | |
echo "version=$pkgver" >> $GITHUB_OUTPUT | |
- name: Install Node.js, NPM and Yarn | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
- name: Get yarn cache directory path | |
id: yarn-cache-dir-path | |
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT | |
- name: Cache yarn cache directory | |
uses: actions/cache@v3 | |
id: yarn-cache | |
with: | |
path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | |
key: ${{ runner.os }}-arm64-yarn-${{ hashFiles('**/yarn.lock') }} | |
restore-keys: | | |
${{ runner.os }}-arm64-yarn- | |
- name: Install Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.11' | |
- name: Signing By Apple Developer ID | |
if: ${{ github.repository == 'logseq/logseq' }} | |
uses: apple-actions/import-codesign-certs@v1 | |
with: | |
p12-file-base64: ${{ secrets.APPLE_CERTIFICATES_P12 }} | |
p12-password: ${{ secrets.APPLE_CERTIFICATES_P12_PASSWORD }} | |
# - name: Cache Node Modules | |
# uses: actions/cache@v3 | |
# with: | |
# path: | | |
# **/node_modules | |
# key: ${{ runner.os }}-node-modules | |
- name: Fetch deps and fix dugit arch for arm64 | |
run: yarn install --ignore-platform && cd node_modules/dugite && npm_config_arch=arm64 node script/download-git.js | |
working-directory: ./static | |
- name: Build/Release Electron App for arm64 | |
run: yarn electron:make-macos-arm64 | |
working-directory: ./static | |
env: | |
APPLE_ID: ${{ secrets.APPLE_ID_EMAIL }} | |
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} | |
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} | |
- name: Save arm64 artifacts | |
run: | | |
mkdir -p builds | |
mv static/out/make/Logseq.dmg ./builds/Logseq-darwin-arm64-${{ steps.ref.outputs.version }}.dmg | |
mv static/out/make/zip/darwin/arm64/*.zip ./builds/Logseq-darwin-arm64-${{ steps.ref.outputs.version }}.zip | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: logseq-darwin-arm64-builds | |
path: builds | |
# reuse workflow via workflow_call | |
build-android: | |
uses: ./.github/workflows/build-android.yml | |
if: ${{ github.event_name == 'schedule' || github.event.inputs.build-android == 'true' }} | |
with: | |
build-target: "${{ github.event.inputs.build-target }}" | |
# if scheduled, use production mode | |
enable-file-sync-production: "${{ github.event_name == 'schedule' || github.event.inputs.enable-file-sync-production == 'true' }}" | |
secrets: | |
ANDROID_KEYSTORE: "${{ secrets.ANDROID_KEYSTORE }}" | |
ANDROID_KEYSTORE_PASSWORD: "${{ secrets.ANDROID_KEYSTORE_PASSWORD }}" | |
SENTRY_AUTH_TOKEN: "${{ secrets.SENTRY_AUTH_TOKEN }}" | |
codesign-windows: | |
if: ${{ github.event_name == 'schedule' || github.event.inputs.build-target == 'nightly' || github.event.inputs.build-target == 'beta' }} | |
needs: [ build-windows ] | |
runs-on: [self-hosted, macos, token] | |
steps: | |
- name: Download Windows Artifact | |
uses: actions/download-artifact@v3 | |
with: | |
name: logseq-win64-unsigned-builds | |
path: ./builds | |
- name: Sign Windows Executable | |
run: | | |
ls -lah ./builds | |
jsign --storetype ETOKEN --storepass "${PASS}" -t http://timestamp.digicert.com ./builds/*.exe | |
env: | |
PASS: ${{ secrets.CODE_SIGN_CERTIFICATE_PASSWORD }} | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: logseq-win64-signed-builds | |
path: builds | |
nightly-release: | |
if: ${{ github.event_name == 'schedule' || github.event.inputs.build-target == 'nightly' }} | |
needs: [ build-macos-x64, build-macos-arm64, build-linux-x64, build-linux-arm64, codesign-windows, build-android, e2e-test ] | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Download MacOS x64 Artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
name: logseq-darwin-x64-builds | |
path: ./ | |
- name: Download MacOS arm64 Artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
name: logseq-darwin-arm64-builds | |
path: ./ | |
- name: Download The Linux x64 Artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
name: logseq-linux-x64-builds | |
path: ./ | |
- name: Download The Linux arm64 Artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
name: logseq-linux-arm64-builds | |
path: ./ | |
- name: Download The Windows Artifact (Signed) | |
uses: actions/download-artifact@v3 | |
with: | |
name: logseq-win64-signed-builds | |
path: ./ | |
- name: Download The Windows Artifact | |
uses: actions/download-artifact@v3 | |
with: | |
name: logseq-win64-builds | |
path: ./ | |
- name: Download Android Artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
name: logseq-android-builds | |
path: ./ | |
- name: Generate SHA256 checksums | |
run: | | |
sha256sum *-darwin-* > SHA256SUMS.txt | |
sha256sum *-win-* >> SHA256SUMS.txt | |
sha256sum *-linux-* >> SHA256SUMS.txt | |
sha256sum *.apk >> SHA256SUMS.txt | |
cat SHA256SUMS.txt | |
- name: List files | |
run: ls -rl | |
- name: Update Nightly Release | |
uses: andelf/nightly-release@main | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: nightly | |
name: 'Desktop/Android APP Nightly Release $$' | |
draft: false | |
prerelease: ${{ (github.event_name == 'workflow_dispatch' && github.event.inputs.is-pre-release) || (github.event_name == 'schedule')}} | |
body: | | |
This is a nightly release of the Logseq desktop app. | |
It's unstable compared to the official releases, **use it with caution**! | |
files: | | |
./SHA256SUMS.txt | |
./*.zip | |
./*.dmg | |
./*.exe | |
./*.AppImage | |
./*.apk | |
release: | |
# NOTE: For now, we only have beta channel to be released on Github | |
if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.build-target == 'beta' }} | |
needs: [ build-macos-x64, build-macos-arm64, build-linux-x64, build-linux-arm64, codesign-windows, build-android, e2e-test ] | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Download MacOS x64 Artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
name: logseq-darwin-x64-builds | |
path: ./ | |
- name: Download MacOS arm64 Artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
name: logseq-darwin-arm64-builds | |
path: ./ | |
- name: Download The Linux x64 Artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
name: logseq-linux-x64-builds | |
path: ./ | |
- name: Download The Linux arm64 Artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
name: logseq-linux-arm64-builds | |
path: ./ | |
- name: Download The Windows Artifact (Signed) | |
uses: actions/download-artifact@v3 | |
with: | |
name: logseq-win64-signed-builds | |
path: ./ | |
- name: Download The Windows Artifact | |
uses: actions/download-artifact@v3 | |
with: | |
name: logseq-win64-builds | |
path: ./ | |
- name: Download Android Artifacts | |
uses: actions/download-artifact@v3 | |
if: ${{ github.event_name == 'schedule' || github.event.inputs.build-android == 'true' }} | |
with: | |
name: logseq-android-builds | |
path: ./ | |
- name: List files | |
run: ls -rl | |
- name: Retrieve tag version | |
id: ref | |
run: | | |
pkgver=$(cat VERSION) | |
echo "version=$pkgver" >> $GITHUB_OUTPUT | |
- name: Fix .nupkg name in RELEASES file | |
run: | | |
sed -i "s/Logseq-.*.nupkg/Logseq-win-x64-${{ steps.ref.outputs.version }}-full.nupkg/g" RELEASES | |
- name: Generate SHA256 checksums | |
run: | | |
sha256sum *-darwin-* > SHA256SUMS.txt | |
sha256sum *-win-* >> SHA256SUMS.txt | |
sha256sum *-linux-* >> SHA256SUMS.txt | |
sha256sum *.apk >> SHA256SUMS.txt | |
sha256sum RELEASES >> SHA256SUMS.txt | |
cat SHA256SUMS.txt | |
- name: Create Release Draft | |
uses: softprops/action-gh-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: ${{ steps.ref.outputs.version }} | |
name: Desktop/Android APP ${{ steps.ref.outputs.version }} (Beta Testing) | |
body: "TODO: Fill this changelog. Sorry for the inconvenience!" | |
draft: ${{ github.event.inputs.is-draft }} | |
prerelease: ${{ github.event.inputs.is-pre-release }} | |
files: | | |
./VERSION | |
./SHA256SUMS.txt | |
./*.zip | |
./*.dmg | |
./*.exe | |
./*.nupkg | |
./RELEASES | |
./*.AppImage | |
./*.apk |