Release #95
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Release | |
on: | |
create: | |
tags: | |
- 'v*' # Version tag | |
workflow_dispatch: | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
publish: | |
name: publish to crates.io | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@master | |
- uses: Swatinem/rust-cache@v1.0.1 | |
- name: Publish crate | |
continue-on-error: true | |
run: cargo publish --manifest-path kalk/Cargo.toml --token ${{ secrets.CARGO_REGISTRY_TOKEN }} --verbose | |
- name: Publish CLI | |
run: sleep 20 && cargo publish --manifest-path cli/Cargo.toml --token ${{ secrets.CARGO_REGISTRY_TOKEN }} --verbose | |
publish_npm: | |
name: publish to npm | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@master | |
- uses: Swatinem/rust-cache@v1.0.1 | |
- uses: actions/setup-node@v1 | |
with: | |
node-version: 14 | |
registry-url: https://registry.npmjs.org/ | |
- name: Install wasm-pack | |
run: cargo install wasm-pack | |
- name: Build | |
run: | | |
yarn install | |
cd kalk | |
wasm-pack build --scope paddim8 -- --no-default-features | |
cd .. | |
- uses: JS-DevTools/npm-publish@v1 | |
with: | |
token: ${{ secrets.NPM_TOKEN }} | |
package: ./kalk/pkg/package.json | |
access: public | |
publish_kalk_web: | |
name: publish kalk_web | |
if: always() | |
runs-on: ubuntu-latest | |
needs: [publish_npm] | |
steps: | |
- uses: actions/checkout@master | |
- uses: actions/setup-node@v1 | |
with: | |
node-version: 14 | |
registry-url: https://registry.npmjs.org/ | |
- name: build | |
run: | | |
cd web | |
npm install | |
cd .. | |
- uses: JS-DevTools/npm-publish@v1 | |
with: | |
token: ${{ secrets.NPM_TOKEN }} | |
package: ./web/package.json | |
access: public | |
release_linux: | |
name: release linux | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@master | |
- uses: Swatinem/rust-cache@v1.0.1 | |
- name: Compile | |
run: | | |
cargo build --release --verbose | |
cp target/release/kalker target/release/kalker-linux | |
- uses: actions/upload-artifact@v2 | |
with: | |
name: binaries | |
path: target/release/kalker-linux | |
release_mac: | |
name: release mac | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@master | |
- uses: actions/cache@v2 | |
with: | |
path: | | |
~/.cargo/registry/index | |
~/.cargo/registry/cache | |
target | |
key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }} | |
- name: Compile | |
run: | | |
cargo build --release --verbose | |
zip -r kalker-macOS.zip target/release/kalker | |
- uses: actions/upload-artifact@v2 | |
with: | |
name: binaries | |
path: kalker-macOS.zip | |
release_windows: | |
name: release windows | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@master | |
- uses: actions/cache@v2 | |
with: | |
key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }} | |
path: | | |
C:\Users\runneradmin\.cargo\bin\cargo-wix | |
C:\Users\runneradmin\.cargo\registry\index | |
C:\Users\runneradmin\.cargo\registry\cache | |
C:\Users\runneradmin\.cargo\registry\cache | |
{FOLDERID_LocalAppData}\gmp-mpfr-sys | |
D:\a\kalker\kalker\target | |
C:\msys64\home\paddi\kalker\target | |
- uses: msys2/setup-msys2@v2 | |
with: | |
update: true | |
install: >- | |
base-devel | |
pacman-mirrors | |
diffutils | |
m4 | |
make | |
mingw-w64-x86_64-gcc | |
mingw-w64-x86_64-rust | |
continue-on-error: true | |
- shell: msys2 {0} | |
run: | | |
cargo build --release --verbose | |
- uses: crazy-max/ghaction-chocolatey@v1 | |
with: | |
args: install wixtoolset -y | |
- shell: msys2 {0} | |
run: | | |
[ ! -f /c/Users/runneradmin/.cargo/bin/cargo-wix.exe ] && cargo install cargo-wix --version 0.3.1 | |
cd cli | |
cargo wix --no-build --nocapture | |
mv target/wix/*.msi target/wix/kalker-windows.msi | |
- uses: actions/upload-artifact@v2 | |
with: | |
name: binaries | |
path: cli/target/wix/kalker-windows.msi | |
release_android: | |
name: release android | |
if: always() | |
runs-on: ubuntu-latest | |
needs: [publish_kalk_web] | |
defaults: | |
run: | |
working-directory: ./mobile | |
steps: | |
- uses: actions/checkout@master | |
- uses: actions/cache@v2 | |
with: | |
path: | | |
mobile/android/.gradle | |
mobile/android/build | |
mobile/android/app/build | |
key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }} | |
- name: npm | |
run: | | |
npm install | |
npm run build | |
- name: build app | |
run: | | |
npx cap sync | |
cd android | |
version=$(cat ../../web/package.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[",]//g' | tr -d '[[:space:]]') | |
APP_VERSION_NAME=$version ./gradlew assembleRelease | |
- name: Setup build tool version variable | |
shell: bash | |
run: | | |
BUILD_TOOL_VERSION=$(ls /usr/local/lib/android/sdk/build-tools/ | tail -n 1) | |
echo "BUILD_TOOL_VERSION=$BUILD_TOOL_VERSION" >> $GITHUB_ENV | |
echo Last build tool version is: $BUILD_TOOL_VERSION | |
- uses: r0adkll/sign-android-release@v1 | |
name: sign apk | |
with: | |
releaseDirectory: mobile/android/app/build/outputs/apk/release | |
signingKeyBase64: ${{ secrets.SIGNING_KEY }} | |
alias: ${{ secrets.ALIAS }} | |
keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }} | |
keyPassword: ${{ secrets.KEY_PASSWORD }} | |
env: | |
BUILD_TOOLS_VERSION: ${{ env.BUILD_TOOL_VERSION }} | |
- run: mv $(ls -Art android/app/build/outputs/apk/release/*.apk | tail -n 1) ../kalker-android.apk | |
- uses: actions/upload-artifact@v2 | |
with: | |
name: binaries | |
path: kalker-android.apk | |
create_release: | |
name: Create Release | |
if: always() | |
needs: [release_linux, release_mac, release_windows, release_android] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Create Release | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: ${{ github.ref }} | |
release_name: ${{ github.ref }} | |
draft: false | |
prerelease: false | |
- name: Download Artifact | |
uses: actions/download-artifact@v2 | |
with: | |
name: binaries | |
- name: Upload Assets | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: ./* | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |