chore: desktop workflow

This commit is contained in:
Mo 2022-06-12 09:54:36 -05:00
parent 884dc81a54
commit decb94f6e5
No known key found for this signature in database
GPG Key ID: 034B13B1644297E1
4 changed files with 80 additions and 49 deletions

View File

@ -4,8 +4,35 @@ on:
workflow_dispatch:
jobs:
Release:
Linux:
runs-on: ubuntu-latest
defaults:
run:
working-directory: packages/desktop
steps:
- uses: actions/checkout@v2
- name: Set up Ruby
uses: ruby/setup-ruby@v1
- uses: actions/setup-node@v2
with:
registry-url: 'https://registry.npmjs.org'
- run: yarn install
- run: yarn build:web:all
- name: Compile for AppImage
run: yarn run webpack --config desktop.webpack.prod.js
- name: AppImage
run: yarn run electron-builder --linux --x64 --ia32 -c.linux.target=AppImage --publish=never
- name: Upload
uses: actions/upload-artifact@v3.0.0
with:
name: assets
path: 'packages/desktop/dist/'
Publish:
runs-on: ubuntu-latest
needs: [Linux]
defaults:
run:
working-directory: packages/desktop
@ -14,20 +41,23 @@ jobs:
- uses: actions/setup-node@v2
with:
registry-url: 'https://registry.npmjs.org'
- run: mkdir files
- run: echo Foo >> files/foo.txt
- run: echo Bar >> files/bar.txt
- name: get-npm-version
id: package-version
uses: martinbeentjes/npm-get-version-action@main
- uses: actions/download-artifact@v3
with:
path: packages/desktop
name: assets
path: packages/desktop/dist
- run: node scripts/sums.mjs
- name: 'Get Previous tag'
id: previous_tag
uses: "WyriHaximus/github-action-get-previous-tag@v1"
with:
fallback: 1.0.0
- name: Release
uses: softprops/action-gh-release@v1
with:
token: ${{ secrets.CI_PAT_TOKEN }}
tag_name: "@standardnotes/desktop@${{ steps.package-version.outputs.current-version}}"
tag_name: ${{steps.previous_tag.outputs.tag}}
prerelease: true
draft: true
files: |
packages/desktop/files/*
packages/desktop/dist/**

View File

@ -17,6 +17,7 @@ jobs:
- run: yarn build:web:all
Mac:
if: true == false
runs-on: macos-latest
needs: build
defaults:
@ -27,6 +28,8 @@ jobs:
- uses: actions/setup-node@v2
with:
registry-url: 'https://registry.npmjs.org'
- run: yarn install
- run: yarn build:web:all
- name: Compile Mac
run: yarn run webpack --config desktop.webpack.prod.js
- name: MacX64
@ -39,9 +42,10 @@ jobs:
uses: actions/upload-artifact@v3.0.0
with:
name: assets
path: 'packages/desktop/dist/'
path: 'packages/desktop/dist/*+(.snap|.AppImage|.yml|.yaml|.blockmap|.deb|.dmg|.zip|.exe)'
Linux:
if: true == false
runs-on: ubuntu-latest
needs: build
defaults:
@ -52,6 +56,8 @@ jobs:
- uses: actions/setup-node@v2
with:
registry-url: 'https://registry.npmjs.org'
- run: yarn install
- run: yarn build:web:all
- name: Compile for AppImage
run: yarn run webpack --config desktop.webpack.prod.js
- name: AppImage
@ -100,7 +106,7 @@ jobs:
uses: actions/upload-artifact@v3.0.0
with:
name: assets
path: 'packages/desktop/dist/'
path: 'packages/desktop/dist/*+(.snap|.AppImage|.yml|.yaml|.blockmap|.deb|.dmg|.zip|.exe)'
Windows:
runs-on: windows-latest
@ -113,6 +119,8 @@ jobs:
- uses: actions/setup-node@v2
with:
registry-url: 'https://registry.npmjs.org'
- run: yarn install
- run: yarn build:web:all
- run: yarn run webpack --config desktop.webpack.prod.js
- run: yarn run electron-builder --windows --x64 --ia32 --publish=never
@ -120,7 +128,7 @@ jobs:
uses: actions/upload-artifact@v3.0.0
with:
name: assets
path: 'packages/desktop/dist/'
path: 'packages/desktop/dist/*+(.snap|.AppImage|.yml|.yaml|.blockmap|.deb|.dmg|.zip|.exe)'
Publish:
runs-on: ubuntu-latest
@ -138,5 +146,19 @@ jobs:
name: assets
path: packages/desktop/dist
- run: node scripts/sums.mjs
- run: node scripts/create-draft-release.mjs
- name: get-npm-version
id: package-version
uses: martinbeentjes/npm-get-version-action@main
with:
path: packages/desktop
- name: Release
uses: softprops/action-gh-release@v1
with:
token: ${{ secrets.CI_PAT_TOKEN }}
tag_name: "@standardnotes/desktop@${{ steps.package-version.outputs.current-version}}"
prerelease: true
draft: true
name: "Desktop ${{ steps.package-version.outputs.current-version}}"
files: |
packages/desktop/dist/*
- run: node scripts/publishSnap.mjs

View File

@ -1,8 +1,8 @@
import path from 'path'
import { fileURLToPath } from 'url'
import { Command } from './Command'
import { publishSnap } from './publishSnap'
import { runCommand } from './runCommand'
import { Command } from './Command.mjs'
import { publishSnap } from './publishSnap.mjs'
import { runCommand } from './runCommand.mjs'
const __filename = fileURLToPath(import.meta.url)
const __dirname = path.dirname(__filename)
@ -159,29 +159,4 @@ const BuildCommands = {
}),
],
[Targets.Windows]: [Command('yarn run electron-builder --windows --x64 --ia32 --publish=never', DesktopDir)],
}
;(async () => {
try {
const input = process.argv[2]
let targets = input.split(',')
console.log('Input targets:', targets)
if (targets.length === 1) {
if (TargetGroups[targets[0]]) {
targets = TargetGroups[targets[0]]
}
}
await buildTargets(targets)
if (input === MainstreamTargetGroup) {
await runCommand(Command('node sums.mjs', ScriptsDir))
await runCommand(Command('node create-draft-release.mjs', ScriptsDir))
await publishSnap()
}
} catch (e) {
console.error(e)
process.exitCode = 1
}
})()
}

View File

@ -1,11 +1,15 @@
import fs from 'fs'
import path from 'path'
import { Command } from './Command'
import { runCommand } from './runCommand'
import { DesktopDir } from './build'
import { Command } from './Command.mjs'
import { runCommand } from './runCommand.mjs'
import { DesktopDir } from './build.mjs'
export async function publishSnap() {
const packageJson = await fs.promises.readFile(path.join(DesktopDir, 'package.json'))
const version = JSON.parse(packageJson).version
await runCommand(Command(`snapcraft upload dist/standard-notes-${version}-linux-amd64.snap`, DesktopDir))
try {
const packageJson = await fs.promises.readFile(path.join(DesktopDir, 'package.json'))
const version = JSON.parse(packageJson).version
await runCommand(Command(`snapcraft upload dist/standard-notes-${version}-linux-amd64.snap`, DesktopDir))
} catch (error) {
console.error('Error publishing snap', error)
}
}