Skip to content

Build

Build #50

Workflow file for this run

name: Build
on:
push:
branches: [ "master" ]
tags: [ "*" ]
env:
CARGO_TERM_COLOR: always
jobs:
build:
strategy:
matrix:
os: [ubuntu-20.04, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
- name: Test
run: cargo test --release
- name: Build csdemoparser
run: cargo build -p csdemoparser --release
- uses: actions/upload-artifact@v4
with:
name: ${{ matrix.os }}
path: |
target/release/csdemoparser
target/release/csdemoparser.exe
package:
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v4
# oldui
- uses: actions/setup-node@v4
with:
node-version: '18'
# cache: 'npm'
# cache-dependency-path: 'src/newui/package-lock.json'
- run: npm install -g bower
- run: bower install
# newui
# - name: newui
# run: |
# cd src/newui
# npm install
# npm run build
# cp -R dist/spa/* ../../resources/public/
# Clojure
- uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '17'
- name: Install Leiningen
uses: DeLaGuardo/setup-clojure@12.3
with:
lein: '2.10.0'
- name: Cache Clojure dependencies
uses: actions/cache@v4
with:
path: ~/.m2/repository
key: cljdeps-${{ hashFiles('project.clj') }}
restore-keys: cljdeps-
- name: Build jar
run: LEIN_SNAPSHOTS_IN_RELEASE=1 lein uberjar
# Package
- uses: actions/download-artifact@v4
- name: Package Windows
run: |
mkdir -p windows/headshotbox
cp windows-latest/csdemoparser.exe windows/headshotbox/
cp target-lein/hsbox-*-standalone.jar windows/headshotbox/hsbox-standalone.jar
echo 'start javaw -jar hsbox-standalone.jar --port 4000 --systray' > windows/headshotbox/headshotbox.bat
echo 'java -jar hsbox-standalone.jar --port 4000' > windows/headshotbox/headshotbox_console.bat
cd windows && zip ../release/headshotbox-${GITHUB_REF_NAME}-win.zip headshotbox/*
- name: Package Linux
run: |
mkdir -p linux/headshotbox
cp ubuntu-20.04/csdemoparser linux/headshotbox/
cp target-lein/hsbox-*-standalone.jar linux/headshotbox/hsbox-standalone.jar
echo 'java -jar hsbox-standalone.jar --port 4000' > linux/headshotbox/headshotbox.sh
chmod a+x linux/headshotbox/headshotbox.sh linux/headshotbox/csdemoparser
cd linux && zip ../release/headshotbox-${GITHUB_REF_NAME}-linux.zip headshotbox/*
- name: Release
uses: softprops/action-gh-release@v1
with:
draft: true
files: |
headshotbox-linux.zip
headshotbox-win.zip