Skip to content

fix(ppuccinier): crash on file extension + cleanup (#27) #26

fix(ppuccinier): crash on file extension + cleanup (#27)

fix(ppuccinier): crash on file extension + cleanup (#27) #26

Workflow file for this run

name: Puccinier Release
on:
push:
paths:
- ".github/workflows/puccinier.yml"
- "puccinier/**/*.rs"
- "puccinier/**/*.toml"
env:
ACTIONS_STEP_DEBUG: true
PROJECT_NAME: puccinier
jobs:
version:
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v2
- name: Set version output
id: version
run: echo "::set-output name=version::$(grep -m 1 -oP 'version = \K.*' ${{ env.PROJECT_NAME }}/Cargo.toml | xargs)"
outputs:
version: ${{ steps.version.outputs.version }}
linux:
needs: version
strategy:
matrix:
os: [ubuntu-latest]
rust:
- stable
runs-on: ${{ matrix.os }}
steps:
- name: Checkout sources
uses: actions/checkout@v2
- name: Install toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust }}
override: true
profile: minimal
- name: Set up cache
uses: actions/cache@v2
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('puccinier/Cargo.lock') }}
- name: Build sources
uses: actions-rs/cargo@v1
with:
command: build
args: --release --manifest-path ${{ env.PROJECT_NAME }}/Cargo.toml
- name: Strip artifact
run: strip ${{ env.PROJECT_NAME }}/target/release/${{ env.PROJECT_NAME }}
- name: Run UPX
run: echo "Not supported on linux platform"
- name: Rename file
run: cp ${{ env.PROJECT_NAME }}/target/release/${{ env.PROJECT_NAME }} ${{ env.PROJECT_NAME }}-${{ needs.version.outputs.version }}-x86_64-unknown-linux-gnu
- name: Upload artifacts
uses: actions/upload-artifact@v2
with:
name: ${{ env.PROJECT_NAME }}-${{ needs.version.outputs.version }}-x86_64-unknown-linux-gnu
path: ${{ env.PROJECT_NAME }}-${{ needs.version.outputs.version }}-x86_64-unknown-linux-gnu
macos:
needs: version
strategy:
matrix:
os: [macos-latest]
rust:
- stable
runs-on: ${{ matrix.os }}
steps:
- name: Checkout sources
uses: actions/checkout@v2
- name: Install toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust }}
override: true
profile: minimal
- name: Set up cache
uses: actions/cache@v2
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('puccinier/Cargo.lock') }}
- name: Build sources
uses: actions-rs/cargo@v1
with:
command: build
args: --release --manifest-path ${{ env.PROJECT_NAME }}/Cargo.toml
- name: Strip artifact
run: strip ${{ env.PROJECT_NAME }}/target/release/${{ env.PROJECT_NAME }}
- name: Run UPX
run: echo "Not supported on darwin platform"
- name: Rename file
run: cp ${{ env.PROJECT_NAME }}/target/release/${{ env.PROJECT_NAME }} ${{ env.PROJECT_NAME }}-${{ needs.version.outputs.version }}-x86_64-apple-darwin
- name: Upload artifacts
uses: actions/upload-artifact@v2
with:
name: ${{ env.PROJECT_NAME }}-${{ needs.version.outputs.version }}-x86_64-apple-darwin
path: ${{ env.PROJECT_NAME }}-${{ needs.version.outputs.version }}-x86_64-apple-darwin
windows:
needs: version
strategy:
matrix:
os: [windows-latest]
rust:
- stable
runs-on: ${{ matrix.os }}
steps:
- name: Checkout sources
uses: actions/checkout@v2
- name: Install toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust }}
override: true
profile: minimal
- name: Set up cache
uses: actions/cache@v2
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('puccinier/Cargo.lock') }}
- name: Build sources
uses: actions-rs/cargo@v1
with:
command: build
args: --release --manifest-path ${{ env.PROJECT_NAME }}/Cargo.toml
- name: Strip artifact
run: strip ${{ env.PROJECT_NAME }}/target/release/${{ env.PROJECT_NAME }}.exe
- name: Run UPX
uses: crazy-max/ghaction-upx@v1
with:
version: latest
files: ${{ env.PROJECT_NAME }}/target/release/${{ env.PROJECT_NAME }}.exe
args: --brute
- name: Rename file
run: cp ${{ env.PROJECT_NAME }}/target/release/${{ env.PROJECT_NAME }}.exe ${{ env.PROJECT_NAME }}-${{ needs.version.outputs.version }}-x86_64-pc-windows-msvc.exe
- name: Upload artifacts
uses: actions/upload-artifact@v2
with:
name: ${{ env.PROJECT_NAME }}-${{ needs.version.outputs.version }}-x86_64-pc-windows-msvc
path: ${{ env.PROJECT_NAME }}-${{ needs.version.outputs.version }}-x86_64-pc-windows-msvc.exe
release:
if: ${{ github.ref == 'refs/heads/main' }}
needs: [version, linux, macos, windows]
runs-on: ubuntu-latest
steps:
- name: Download Linux artifact
uses: actions/download-artifact@v2
id: linux
with:
name: ${{ env.PROJECT_NAME }}-${{ needs.version.outputs.version }}-x86_64-unknown-linux-gnu
path: artifacts
- name: Download macOS artifact
uses: actions/download-artifact@v2
id: macos
with:
name: ${{ env.PROJECT_NAME }}-${{ needs.version.outputs.version }}-x86_64-apple-darwin
path: artifacts
- name: Download Windows artifact
uses: actions/download-artifact@v2
id: windows
with:
name: ${{ env.PROJECT_NAME }}-${{ needs.version.outputs.version }}-x86_64-pc-windows-msvc
path: artifacts
- name: Display downloaded artifacts
run: ls -R -l
working-directory: artifacts
- name: Generate checksum
uses: jmgilman/actions-generate-checksum@v1
with:
output: checksum.txt
patterns: artifacts/*
- name: Release with artifacts
uses: ncipollo/release-action@v1
with:
name: toolbox-tools
body: See `checksum.txt` for SHA 256 checksums.
tag: toolbox-tools
token: ${{ secrets.GITHUB_TOKEN }}
commit: ${{ github.sha }}
allowUpdates: true
omitBodyDuringUpdate: true
artifacts: >-
checksum.txt,
${{ steps.linux.outputs.download-path }}/${{ env.PROJECT_NAME }}-${{ needs.version.outputs.version }}-x86_64-unknown-linux-gnu,
${{ steps.macos.outputs.download-path }}/${{ env.PROJECT_NAME }}-${{ needs.version.outputs.version }}-x86_64-apple-darwin,
${{ steps.windows.outputs.download-path }}/${{ env.PROJECT_NAME }}-${{ needs.version.outputs.version }}-x86_64-pc-windows-msvc.exe