Skip to content

Commit 0422757

Browse files
authored
Create release action (#13)
* create release upon build * Add release manually triggered workflow * Improve README
1 parent 12379fb commit 0422757

File tree

4 files changed

+88
-15
lines changed

4 files changed

+88
-15
lines changed

.github/workflows/build.yml

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,17 @@ jobs:
88
fail-fast: false
99
matrix:
1010
include:
11-
- artifact-name: Build - Ubuntu
11+
- job-name: Build - Ubuntu x64
1212
os: ubuntu-22.04
13-
- artifact-name: Build - macOS
13+
artifact-name: linux-x64
14+
- job-name: Build - macOS x64
1415
os: macOS-12
15-
- artifact-name: Build - Windows
16+
artifact-name: macOS-x64
17+
- job-name: Build - Windows x64
1618
os: windows-2022
17-
18-
name: ${{ matrix.artifact-name }}
19+
artifact-name: windows-x64
20+
21+
name: ${{ matrix.job-name }}
1922
runs-on: ${{ matrix.os }}
2023

2124
steps:
@@ -42,5 +45,5 @@ jobs:
4245
- name: Upload jpackage
4346
uses: actions/[email protected]
4447
with:
45-
name: ${{ matrix.artifact-name }}
46-
path: app/build/package
48+
name: HelixNavigator-1.0.0-${{ matrix.artifact-name }}
49+
path: app/build/package

.github/workflows/release.yml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
name: Release
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
version:
7+
description: "Version: `X.X.X`"
8+
required: true
9+
default: '1.0.0'
10+
type: string
11+
tag:
12+
description: "Tag"
13+
required: true
14+
type: string
15+
16+
jobs:
17+
release:
18+
strategy:
19+
fail-fast: false
20+
matrix:
21+
artifact-file: [linux-x64.deb, macOS-x64.dmg, windows-x64.msi]
22+
23+
name: Release
24+
runs-on: ubuntu-22.04
25+
26+
steps:
27+
- uses: dsaltares/fetch-gh-release-asset@master
28+
with:
29+
version: 'tags/$TAG'
30+
file: 'HelixNavigator-$VERSION-${{ matrix.artifact-file }}'
31+
target: 'pkgs/'
32+
token: '${{ secrets.GITHUB_TOKEN }}'
33+
env:
34+
VERSION: ${{ inputs.version }}
35+
TAG: ${{ inputs.tag }}

README.md

Lines changed: 39 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,58 @@
11
# HelixNavigator
2-
HelixNavigator is a trajectory optimization-based path planning app. You can currently use it to generate trajectories for FRC swerve robots to follow.
32

4-
HelixNavigator provides the graphical interface to build autonomous paths, the trajectory optimizer, HelixTrajectory, takes these paths and converts them to trajectories that your robot can follow.
3+
A trajectory optimization-based path planning app for FRC.
54

6-
## Linux and MacOS from source
5+
![Build](https://github.com/TripleHelixProgramming/HelixNavigator/actions/workflows/build.yml/badge.svg)
6+
[![Discord](https://img.shields.io/discord/975739302933856277?color=%23738ADB&label=Join%20our%20Discord&logo=discord&logoColor=white)](https://discord.gg/ad2EEZZwsS)
77

8-
There are currently no binary distributions, so the app must be built from source to run.
8+
## Compatibility
99

10-
Unfortunately, GitHub Actions does not support publishing Maven artifacts without authentication, so you will need a GitHub access token to build with these commands. You will have to build [TrajoptLib](https://github.com/SleipnirGroup/TrajoptLib) from source.
10+
HelixNavigator is compatible with FRC swerve drive robots only. The app generates json trajectories which can be followed by the a trajectory follower in the robot code.
11+
12+
## TrajoptLib
13+
14+
HelixNavigator is backed by the [TrajoptLib](https://github.com/SleipnirGroup/TrajoptLib), a C++ library for generating time-optimal trajectories.
15+
16+
## Binary Installation
17+
18+
You can download the latest binaries on [Releases](https://github.com/TripleHelixProgramming/HelixNavigator/releases).
19+
20+
### Linux
21+
22+
Use your system's package manager to install the `HelixNavigator-X.X.X-linux-x64.deb` artifact.
23+
24+
### macOS
25+
26+
Download the `HelixNavigator-X.X.X-macOS-x64.zip` artifact. Extract it and place in the `/Applications` directory.
27+
28+
### Windows
29+
30+
**DISCLAIMER:** The Windows distribution does not support generation of trajectories. This is an ongoing issue which will be fixed in the future.
31+
32+
Download the `HelixNavigator-X.X.X-windows-x64.msi` artifact and install it.
33+
34+
## Building from source
1135

1236
First, clone the repo in your working directory:
1337
```
1438
git clone https://github.com/TripleHelixProgramming/HelixNavigator.git
1539
```
1640

17-
Run the following to build the code and run it:
41+
If on Windows, replace `./gradlew` with `.\gradlew.bat`.
42+
43+
To build:
44+
```
45+
./gradlew build -PmvnUsername=YOUR_USERNAME -PmvnPassword=YOUR_GITHUB_TOKEN
46+
```
47+
48+
To run:
1849
```
1950
./gradlew run
2051
```
2152

22-
## Build packaged distribution:
53+
## Build packaged distribution
2354

24-
Run the following to build a `.dmg` or equivalent Linux package:
55+
Run the following to build a `.deb`, `.dmg`, or `.msi` package:
2556

2657
```
2758
./gradlew jpackage

app/build.gradle.kts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,4 +80,8 @@ tasks.register("jpackage") {
8080
)
8181
}
8282
}
83+
}
84+
85+
tasks.register("printVersion") {
86+
println(project.version)
8387
}

0 commit comments

Comments
 (0)