Skip to content

Commit

Permalink
CI/CD: test + publish
Browse files Browse the repository at this point in the history
  • Loading branch information
kel-z committed Jan 7, 2023
1 parent bd370b1 commit 61f5c65
Show file tree
Hide file tree
Showing 3 changed files with 143 additions and 4 deletions.
92 changes: 92 additions & 0 deletions .github/workflows/create-publish-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
name: 'My Workflow'

on:
push:
branches:
- release

jobs:
create-release:
runs-on: ubuntu-20.04
outputs:
release_id: ${{ steps.create-release.outputs.result }}

steps:
- uses: actions/checkout@v3
- name: setup node
uses: actions/setup-node@v3
with:
node-version: 16
- uses: pnpm/action-setup@v2
with:
version: 7.18.2
- name: get version
run: echo "PACKAGE_VERSION=$(node -p "require('./package.json').version")" >> $GITHUB_ENV
- name: create release
id: create-release
uses: actions/github-script@v6
with:
script: |
const { data } = await github.rest.repos.createRelease({
owner: context.repo.owner,
repo: context.repo.repo,
tag_name: `app-v${process.env.PACKAGE_VERSION}`,
name: `Desktop App v${process.env.PACKAGE_VERSION}`,
body: 'Take a look at the assets to download and install this app.',
draft: true,
prerelease: false
})
return data.id
build-tauri:
needs: create-release
strategy:
fail-fast: false
matrix:
platform: [macos-latest, ubuntu-20.04, windows-latest]

runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v3
- name: setup node
uses: actions/setup-node@v3
with:
node-version: 16
- uses: pnpm/action-setup@v2
with:
version: 7.18.2
- name: install Rust stable
uses: dtolnay/rust-toolchain@stable
- name: install dependencies (ubuntu only)
if: matrix.platform == 'ubuntu-20.04'
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf
- name: install app dependencies and build it
run: pnpm i && pnpm build
- uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
releaseId: ${{ needs.create-release.outputs.release_id }}

publish-release:
runs-on: ubuntu-20.04
needs: [create-release, build-tauri]

steps:
- name: publish release
id: publish-release
uses: actions/github-script@v6
env:
release_id: ${{ needs.create-release.outputs.release_id }}
with:
script: |
github.rest.repos.updateRelease({
owner: context.repo.owner,
repo: context.repo.repo,
release_id: process.env.release_id,
draft: false,
prerelease: false
})
32 changes: 32 additions & 0 deletions .github/workflows/test-on-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: 'test-on-pr'
on: [pull_request]

jobs:
test-tauri:
strategy:
fail-fast: false
matrix:
platform: [macos-latest, ubuntu-20.04, windows-latest]

runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v3
- name: setup node
uses: actions/setup-node@v3
with:
node-version: 16
- uses: pnpm/action-setup@v2
with:
version: 7.18.2
- name: install Rust stable
uses: dtolnay/rust-toolchain@stable
- name: install dependencies (ubuntu only)
if: matrix.platform == 'ubuntu-20.04'
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf
- name: install app dependencies and build it
run: pnpm i && pnpm build
- uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
23 changes: 19 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,22 @@
# Tauri + Next.js + Typescript
# Postr

This template should help get you started developing with Tauri, Next.js and Typescript.
Postr is a messaging desktop client for the decentralized nostr protocol, built with Rust, Next.js, and Typescript using the Tauri framework. It aims to provide a faster and more resource-efficient experience than web clients, while still offering the same messaging and eventually feed functionality.

## Recommended IDE Setup
## Features

- [VS Code](https://code.visualstudio.com/) + [Tauri](https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode) + [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer)
- Fast and lightweight: Postr is built with Tauri's integration with Rust, making it fast and low on resource usage.
- Decentralized: Postr uses the decentralized nostr protocol, ensuring that your messages are secure and private.
<!-- - Messaging and feed functionality: Postr offers all the features you need for messaging and keeping up with your feed. -->

## Installation

To install and run Postr, follow these steps:

1. Clone the repository: `git clone https://github.com/zpv/postr.git`
2. Navigate to the project directory: `cd postr`
3. Install dependencies: `pnpm install`
4. Run the app: `pnpm run tauri dev`

## License

Postr is released under the [MIT License](LICENSE).

0 comments on commit 61f5c65

Please sign in to comment.