Version bump. #35
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: "Tagged Release" | |
on: | |
push: | |
tags: | |
- "*" | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
create-release: | |
name: Create Release | |
runs-on: ubuntu-20.04 | |
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 }} | |
body: | | |
- `viewsvg` is a simple application that showcases *resvg* capabilities | |
- `resvg-0.*.0.tar.xz` is a sources archive with vendored Rust dependencies | |
- `resvg-explorer-extension.exe` is an SVG thumbnailer for Windows Explorer | |
draft: false | |
prerelease: false | |
outputs: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
release-linux: | |
name: Release Linux | |
runs-on: ubuntu-20.04 | |
needs: ["create-release"] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Build resvg | |
run: cargo build --release | |
- name: Build usvg | |
working-directory: crates/usvg | |
run: cargo build --release | |
- name: Collect | |
working-directory: target/release | |
run: | | |
strip -s resvg | |
strip -s usvg | |
tar czf resvg-linux-x86_64.tar.gz resvg | |
tar czf usvg-linux-x86_64.tar.gz usvg | |
mkdir ../../bin | |
cp resvg-linux-x86_64.tar.gz ../../bin/ | |
cp usvg-linux-x86_64.tar.gz ../../bin/ | |
- name: Get version | |
id: get_version | |
uses: battila7/get-version-action@v2 | |
- name: Make vendored archive | |
run: | | |
VERSION=${{ steps.get_version.outputs.version-without-v }} | |
echo $VERSION | |
git clone https://github.com/RazrFalcon/resvg resvg-$VERSION | |
cd resvg-"$VERSION" | |
mkdir -p .cargo | |
cargo vendor > .cargo/config | |
cd .. | |
env XZ_OPT="-9e" tar \ | |
--exclude=".git" \ | |
--exclude=".gitignore" \ | |
--exclude="resvg-$VERSION/.github" \ | |
--exclude="resvg-$VERSION/version-bump.md" \ | |
--exclude="resvg-$VERSION/docs" \ | |
-cJf resvg-"$VERSION".tar.xz resvg-"$VERSION" | |
cp resvg-"$VERSION".tar.xz bin/ | |
- name: Upload binaries | |
uses: alexellis/upload-assets@0.2.2 | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
with: | |
asset_paths: '["bin/*"]' | |
release-windows: | |
name: Release Windows | |
runs-on: windows-2019 | |
needs: ["create-release"] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
# Toolchain is stable-x86_64-pc-windows-msvc by default. No need to change it. | |
- name: Build resvg | |
env: | |
RUSTFLAGS: -Ctarget-feature=+crt-static # make sure it's static | |
run: cargo build --release | |
- name: Build usvg | |
working-directory: crates/usvg | |
env: | |
RUSTFLAGS: -Ctarget-feature=+crt-static # make sure it's static | |
run: cargo build --release | |
- name: Compress | |
working-directory: target/release | |
shell: cmd | |
run: | | |
7z a -tzip -mx9 resvg-win64.zip resvg.exe | |
7z a -tzip -mx9 usvg-win64.zip usvg.exe | |
- name: Build thumbnailer | |
working-directory: tools/explorer-thumbnailer | |
env: | |
RUSTFLAGS: -Ctarget-feature=+crt-static # make sure it's static | |
run: cargo build --release | |
- name: Build thumbnailer installer | |
working-directory: tools/explorer-thumbnailer/install | |
shell: cmd | |
run: | | |
"%programfiles(x86)%\Inno Setup 6\iscc.exe" "installer.iss" | |
- name: Install Qt | |
uses: jurplel/install-qt-action@v2 | |
with: | |
version: '5.15.2' | |
# Unlike other binaries, viewsvg isn't built with crt-static | |
- name: Build C API | |
working-directory: crates/c-api | |
run: cargo build --release | |
- name: Prepare Developer Command Prompt for MSVC | |
uses: ilammy/msvc-dev-cmd@v1 | |
- name: Build viewsvg | |
working-directory: tools/viewsvg | |
run: | | |
qmake | |
nmake | |
mkdir viewsvg-bin | |
cp release/viewsvg.exe viewsvg-bin/viewsvg.exe | |
windeployqt --no-translations viewsvg-bin/viewsvg.exe | |
del viewsvg-bin/libGLESv2.dll | |
del viewsvg-bin/libEGL.dll | |
del viewsvg-bin/d3dcompiler_47.dll | |
del viewsvg-bin/opengl32sw.dll | |
Remove-Item "viewsvg-bin/iconengines" -Recurse | |
Remove-Item "viewsvg-bin/imageformats" -Recurse | |
cd viewsvg-bin | |
7z a -tzip -mx9 viewsvg-win64.zip * | |
- name: Collect | |
run: | | |
mkdir bin | |
cp target/release/resvg-win64.zip bin/ | |
cp target/release/usvg-win64.zip bin/ | |
cp tools/explorer-thumbnailer/install/resvg-explorer-extension.exe bin/ | |
cp tools/viewsvg/viewsvg-bin/viewsvg-win64.zip bin/ | |
- name: Upload binaries | |
uses: alexellis/upload-assets@0.2.2 | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
with: | |
asset_paths: '["bin/*"]' | |
release-macos: | |
name: Release macOS | |
runs-on: macos-latest | |
needs: ["create-release"] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
# Some weird CI glitch. Make sure we have the latest Rust. | |
- name: Install latest stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
- name: Build resvg | |
run: cargo build --release | |
- name: Build usvg | |
working-directory: crates/usvg | |
run: cargo build --release | |
- name: Compress | |
working-directory: target/release | |
run: | | |
7z a -tzip -mx9 resvg-macos-x86_64.zip resvg | |
7z a -tzip -mx9 usvg-macos-x86_64.zip usvg | |
- name: Build C API | |
working-directory: crates/c-api | |
run: cargo build --release | |
- name: Install Qt | |
uses: jurplel/install-qt-action@v2 | |
with: | |
version: '5.15.2' | |
- name: Build viewsvg | |
working-directory: tools/viewsvg | |
run: | | |
qmake | |
make | |
macdeployqt viewsvg.app | |
rm -r viewsvg.app/Contents/Plugins/iconengines | |
rm -r viewsvg.app/Contents/Plugins/imageformats | |
7z a -tzip -mx9 viewsvg-macos-x86_64.zip viewsvg.app | |
- name: Collect | |
run: | | |
mkdir bin | |
cp target/release/resvg-macos-x86_64.zip bin/ | |
cp target/release/usvg-macos-x86_64.zip bin/ | |
cp tools/viewsvg/viewsvg-macos-x86_64.zip bin/ | |
- name: Upload binaries | |
uses: alexellis/upload-assets@0.2.2 | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
with: | |
asset_paths: '["bin/*"]' |