fix(ppuccinier): crash on file extension + cleanup (#27) #26
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: 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 |