Skip to content

Release

Release #60

Workflow file for this run

name: Release
on:
workflow_dispatch:
inputs:
schemio_version:
description: 'Schemio version'
type: string
default: '0.1.1'
node_version:
description: 'Node version'
type: string
default: 18.x
jobs:
release:
name: Build and release
permissions:
# write permission is required to create a github release
contents: write
# write permission is required for autolabeler
# otherwise, read permission is required at least
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: git fetch --all --tags
- name: Use Node.js ${{ inputs.node_version }}
uses: actions/setup-node@v3
with:
node-version: ${{ inputs.node_version }}
- run: npm ci
- run: ./scripts/ci/release-build.sh ${{ inputs.schemio_version }}
- name: Release
uses: softprops/action-gh-release@v1
with:
tag_name: v${{ inputs.schemio_version }}
fail_on_unmatched_files: true
files: |
dist/release/schemio-${{ inputs.schemio_version }}.zip
dist/release/schemio-static-${{ inputs.schemio_version }}.zip
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v3
with:
push: true
tags: |
binshu/schemio:latest
binshu/schemio:${{ inputs.schemio_version }}
build-mac:
needs: release
runs-on: macOS-latest
name: Build on MacOS
steps:
- uses: actions/checkout@v3
with:
ref: v${{ inputs.schemio_version }}
- name: Use Node.js ${{ inputs.node_version }}
uses: actions/setup-node@v3
with:
node-version: ${{ inputs.node_version }}
- run: npm ci
- run: npm run package-electron
- run: npm run make-electron
- run: find out | grep -v .webpack/renderer/assets
- name: Upload to release asset
uses: softprops/action-gh-release@v1
with:
tag_name: v${{ inputs.schemio_version }}
fail_on_unmatched_files: true
files: out/make/zip/darwin/arm64/schemio-darwin-arm64-${{ inputs.schemio_version }}.zip
build-linux:
needs: release
runs-on: ubuntu-latest
name: Build on Linux
steps:
- uses: actions/checkout@v3
with:
ref: v${{ inputs.schemio_version }}
- name: Use Node.js ${{ inputs.node_version }}
uses: actions/setup-node@v3
with:
node-version: ${{ inputs.node_version }}
- run: npm ci
- run: npm run package-electron
- run: npm run make-electron
- uses: actions/upload-artifact@v4
with:
name: schemio-electron-linux-rpm
path: out/make/rpm/x64/schemio-${{ inputs.schemio_version }}-1.x86_64.rpm
- run: find out | grep -v .webpack/renderer/assets
- name: Upload to release asset
uses: softprops/action-gh-release@v1
with:
tag_name: v${{ inputs.schemio_version }}
fail_on_unmatched_files: true
files: |
out/make/rpm/x64/schemio-${{ inputs.schemio_version }}-1.x86_64.rpm
out/make/deb/x64/schemio_${{ inputs.schemio_version }}_amd64.deb
build-win:
needs: release
name: Build Windows app
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
with:
ref: v${{ inputs.schemio_version }}
- name: Use Node.js ${{ inputs.node_version }}
uses: actions/setup-node@v3
with:
node-version: ${{ inputs.node_version }}
- run: npm ci
- run: npm run package-electron
- run: npm run make-electron
- run: npm install -g tree-cli
- run: cd out && tree -l 8
- name: Upload to release asset
uses: softprops/action-gh-release@v1
with:
tag_name: v${{ inputs.schemio_version }}
fail_on_unmatched_files: true
files: out/make/squirrel.windows/x64/schemio-${{ inputs.schemio_version }} Setup.exe