| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450 |
- # This is a basic workflow to help you get started with Actions
- name: Build-Desktop-Release
- on:
- workflow_dispatch:
- inputs:
- tag-version:
- description: "Release Tag Version"
- required: true
- git-ref:
- description: "Release Git Ref"
- required: true
- default: "master"
- is-draft:
- description: 'Draft Release? '
- required: true
- default: "true"
- is-pre-release:
- description: 'Pre Release?'
- required: true
- default: "true"
- jobs:
- compile-cljs:
- runs-on: ubuntu-18.04
- steps:
- - name: Check out Git repository
- uses: actions/checkout@v1
- - name: Install Node.js, NPM and Yarn
- uses: actions/setup-node@v2
- with:
- node-version: 16
- - name: Setup Java JDK
- uses: actions/[email protected]
- with:
- java-version: 1.8
- - name: Cache local Maven repository
- uses: actions/cache@v2
- with:
- path: ~/.m2/repository
- key: ${{ runner.os }}-maven
- - name: Install clojure
- run: |
- curl -O https://download.clojure.org/install/linux-install-1.10.1.763.sh
- chmod +x linux-install-1.10.1.763.sh
- sudo ./linux-install-1.10.1.763.sh
- - name: Compile CLJS
- run: yarn install && gulp build && yarn cljs:release-electron
- - name: Update APP Version
- run: |
- sed -i 's/"version": "0.0.1"/"version": "${{ github.event.inputs.tag-version }}"/g' ./package.json
- working-directory: ./static
- - name: Display Package.json
- run: cat ./package.json
- working-directory: ./static
- - name: List Files
- run: ls -al
- working-directory: ./static
- - name: Compress Static Files
- run: zip -r static.zip ./static
- - name: Cache Static File
- uses: actions/upload-artifact@v1
- with:
- name: static.zip
- path: static.zip
- build-linux:
- runs-on: ubuntu-18.04
- needs: [ compile-cljs ]
- steps:
- - name: Download The Static Asset
- uses: actions/download-artifact@v1
- with:
- name: static.zip
- path: ./
- - name: Uncompress Static FIles
- run: unzip static.zip
- - name: Install Node.js, NPM and Yarn
- uses: actions/setup-node@v2
- with:
- node-version: 16
- - name: Cache Node Modules
- uses: actions/cache@v2
- with:
- path: |
- **/node_modules
- key: ${{ runner.os }}-node-modules
- - name: Build/Release Electron App
- run: yarn install && yarn electron:make
- working-directory: ./static
- - name: Change Artifact Name For ZIP File
- run: mv static/out/make/zip/linux/x64/*-linux-x64-*.zip static/out/make/zip/linux/x64/Logseq-linux.zip
- - name: Change Artifact Name For AppImage File
- run: mv static/out/make/*-*.AppImage static/out/make/Logseq-linux.AppImage
- - name: Cache Artifact With ZIP format
- uses: actions/upload-artifact@v1
- with:
- name: Logseq-linux.zip
- path: static/out/make/zip/linux/x64/Logseq-linux.zip
- - name: Cache Artifact With AppImage format
- uses: actions/upload-artifact@v1
- with:
- name: Logseq-linux.AppImage
- path: static/out/make/Logseq-linux.AppImage
- build-windows:
- runs-on: windows-latest
- needs: [ compile-cljs ]
- steps:
- - name: Download The Static Asset
- uses: actions/download-artifact@v1
- with:
- name: static.zip
- path: ./
- - name: Uncompress Static FIles
- run: unzip static.zip
- - name: Install Node.js, NPM and Yarn
- uses: actions/setup-node@v2
- with:
- node-version: 16
- - name: Cache Node Modules
- uses: actions/cache@v2
- 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
- - name: Change Artifact Name
- run: Get-ChildItem static\out\make\squirrel.windows\x64\*.exe | Rename-Item -NewName Logseq-win64.exe
- - name: List Directory
- run: dir
- working-directory: static/out/make/squirrel.windows/x64/
- - name: Cache Artifact
- uses: actions/upload-artifact@v1
- with:
- name: Logseq-win64.exe
- path: static/out/make/squirrel.windows/x64/Logseq-win64.exe
- build-macos:
- needs: [ compile-cljs ]
- runs-on: macos-latest
- steps:
- - name: Download The Static Asset
- uses: actions/download-artifact@v1
- with:
- name: static.zip
- path: ./
- - name: Uncompress Static Files
- run: unzip ./static.zip
- - name: List Static Files
- run: ls -al ./static
- - name: Install Node.js, NPM and Yarn
- uses: actions/setup-node@v2
- with:
- node-version: 16
- - name: Signing By Apple Developer ID
- 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@v2
- with:
- path: |
- **/node_modules
- key: ${{ runner.os }}-node-modules
- - name: Build/Release Electron App
- run: yarn install && yarn electron:make
- working-directory: ./static
- env:
- APPLE_ID: ${{ secrets.APPLE_ID_EMAIL }}
- APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
- - name: Change DMG Name
- run: mv static/out/make/*.dmg static/out/make/logseq-darwin-x64-${{ github.event.inputs.tag-version }}.dmg
- - name: Cache Artifact DMG
- uses: actions/upload-artifact@v1
- with:
- name: Logseq-x64.dmg
- path: static/out/make/logseq-darwin-x64-${{ github.event.inputs.tag-version }}.dmg
- - name: ls files
- run: du -a static/out/
- - name: Change zip Name
- run: mv static/out/make/zip/darwin/x64/*.zip static/out/make/zip/darwin/x64/logseq-darwin-x64-${{ github.event.inputs.tag-version }}.zip
- - name: Cache Artifact ZIP
- uses: actions/upload-artifact@v1
- with:
- name: Logseq-x64.zip
- path: static/out/make/zip/darwin/x64/logseq-darwin-x64-${{ github.event.inputs.tag-version }}.zip
- build-macos-arm64:
- needs: [ compile-cljs ]
- runs-on: macos-latest
- steps:
- # this is only needed temporarily
- # wait until macos-11 GA https://github.com/actions/virtual-environments/issues/2486
- # or m1 hardware https://github.com/actions/virtual-environments/issues/2187
- - name: hack osx sdk
- run: |
- if [ "$(sw_vers -productVersion | cut -d'.' -f1)" = 10 ]; then
- pushd /Library/Developer/CommandLineTools/SDKs
- sudo rm MacOSX.sdk
- sudo ln -s MacOSX11.1.sdk MacOSX.sdk
- sudo rm -rf MacOSX10.15.sdk
- ls -l
- popd
- fi
- - name: Download The Static Asset
- uses: actions/download-artifact@v1
- with:
- name: static.zip
- path: ./
- - name: Uncompress Static Files
- run: unzip ./static.zip
- - name: List Static Files
- run: ls -al ./static
- - name: Install Node.js, NPM and Yarn
- uses: actions/setup-node@v2
- with:
- node-version: 16
- - name: Signing By Apple Developer ID
- 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@v2
- with:
- path: |
- **/node_modules
- key: ${{ runner.os }}-node-modules
- - name: Build/Release Electron App
- run: yarn install && yarn electron:make-macos-arm64
- working-directory: ./static
- env:
- APPLE_ID: ${{ secrets.APPLE_ID_EMAIL }}
- APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
- - name: Change DMG Name
- run: mv static/out/make/*.dmg static/out/make/logseq-darwin-arm64-${{ github.event.inputs.tag-version }}.dmg
- - name: Cache Artifact DMG
- uses: actions/upload-artifact@v1
- with:
- name: Logseq-arm64.dmg
- path: static/out/make/logseq-darwin-arm64-${{ github.event.inputs.tag-version }}.dmg
- - name: ls files
- run: du -a static/out/
- - name: Change zip Name
- run: mv static/out/make/zip/darwin/arm64/*.zip static/out/make/zip/darwin/arm64/logseq-darwin-arm64-${{ github.event.inputs.tag-version }}.zip
- - name: Cache Artifact ZIP
- uses: actions/upload-artifact@v1
- with:
- name: Logseq-arm64.zip
- path: static/out/make/zip/darwin/arm64/logseq-darwin-arm64-${{ github.event.inputs.tag-version }}.zip
- release:
- needs: [ build-macos, build-linux, build-windows, build-macos-arm64 ]
- runs-on: ubuntu-18.04
- steps:
- - name: Download The MacOS X64 DMG Artifact
- uses: actions/download-artifact@v1
- with:
- name: Logseq-x64.dmg
- path: ./
- - name: Download The MacOS X64 ZIP Artifact
- uses: actions/download-artifact@v1
- with:
- name: Logseq-x64.zip
- path: ./
- - name: Download The MacOS ARM64 DMG Artifact
- uses: actions/download-artifact@v1
- with:
- name: Logseq-arm64.dmg
- path: ./
- - name: Download The MacOS ARM64 ZIP Artifact
- uses: actions/download-artifact@v1
- with:
- name: Logseq-arm64.zip
- path: ./
- - name: Download The Linux Artifact In Zip format
- uses: actions/download-artifact@v1
- with:
- name: Logseq-linux.zip
- path: ./
- - name: Download The Linux Artifact In AppImage format
- uses: actions/download-artifact@v1
- with:
- name: Logseq-linux.AppImage
- path: ./
- - name: Download The Windows Artifact
- uses: actions/download-artifact@v1
- with:
- name: Logseq-win64.exe
- path: ./
- - name: List files
- run: ls -rl
- - name: Create Release Draft
- id: create_release
- uses: actions/create-release@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- tag_name: ${{ github.event.inputs.tag-version }}
- release_name: Desktop APP ${{ github.event.inputs.tag-version }} (Beta Testing)
- draft: ${{ github.event.inputs.is-draft }}
- prerelease: ${{ github.event.inputs.is-pre-release }}
- - name: Upload MacOS X64 ZIP Artifact
- id: upload-macos-x64-zip-artifact
- uses: actions/upload-release-asset@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- upload_url: ${{ steps.create_release.outputs.upload_url }}
- asset_path: ./logseq-darwin-x64-${{ github.event.inputs.tag-version }}.zip
- asset_name: logseq-darwin-x64-${{ github.event.inputs.tag-version }}.zip
- asset_content_type: application/zip
- - name: Upload MacOS X64 DMG Artifact
- id: upload-macos-x64-dmg-artifact
- uses: actions/upload-release-asset@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- upload_url: ${{ steps.create_release.outputs.upload_url }}
- asset_path: ./logseq-darwin-x64-${{ github.event.inputs.tag-version }}.dmg
- asset_name: logseq-darwin-x64-${{ github.event.inputs.tag-version }}.dmg
- asset_content_type: application/x-apple-diskimage
- - name: Upload MacOS ARM64 ZIP Artifact
- id: upload-macos-arm64-zip-artifact
- uses: actions/upload-release-asset@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- upload_url: ${{ steps.create_release.outputs.upload_url }}
- asset_path: ./logseq-darwin-arm64-${{ github.event.inputs.tag-version }}.zip
- asset_name: logseq-darwin-arm64-${{ github.event.inputs.tag-version }}.zip
- asset_content_type: application/zip
- - name: Upload MacOS ARM64 DMG Artifact
- id: upload-macos-arm64-dmg-artifact
- uses: actions/upload-release-asset@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- upload_url: ${{ steps.create_release.outputs.upload_url }}
- asset_path: ./logseq-darwin-arm64-${{ github.event.inputs.tag-version }}.dmg
- asset_name: logseq-darwin-arm64-${{ github.event.inputs.tag-version }}.dmg
- asset_content_type: application/x-apple-diskimage
- - name: Upload Linux Artifact With Zip format
- id: upload-linux-artifact-with-zip-format
- uses: actions/upload-release-asset@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- upload_url: ${{ steps.create_release.outputs.upload_url }}
- asset_path: ./Logseq-linux.zip
- asset_name: logseq-linux-x64-${{ github.event.inputs.tag-version }}.zip
- asset_content_type: application/zip
- - name: Upload Linux Artifact With AppImage format
- id: upload-linux-artifact-with-appimage-format
- uses: actions/upload-release-asset@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- upload_url: ${{ steps.create_release.outputs.upload_url }}
- asset_path: ./Logseq-linux.AppImage
- asset_name: logseq-linux-x64-${{ github.event.inputs.tag-version }}.AppImage
- asset_content_type: application/octet-stream
- - name: Upload Windows Artifact
- id: upload-win-artifact
- uses: actions/upload-release-asset@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- upload_url: ${{ steps.create_release.outputs.upload_url }}
- asset_path: ./Logseq-win64.exe
- asset_name: logseq-win-x64-${{ github.event.inputs.tag-version }}.exe
- asset_content_type: application/octet-stream
|