tauri/.github/workflows/release-cargo.yml
github-actions[bot] a87f5a05a4
add envs and publishPath, don't verify (#414) [version updates] (#415)
We were missing the envs so tauri-core didn't publish. It is fine if every package has these envs. We shouldn't need to verify as we have already built many times prior, and the verification gets very odd with packages all being bumped and being interdependent (inception verification).

Co-authored-by: Jacob Bolda <me@jacobbolda.com>
2020-02-10 14:31:49 +01:00

120 lines
4.5 KiB
YAML

name: release-cargo
on:
push:
branches:
- master
paths:
- '**/Cargo.toml'
- '.github/workflows/**'
jobs:
publish:
runs-on: ubuntu-latest
env:
TAURI_DIST_DIR: tauri/test/fixture/dist
TAURI_DIR: ../test/fixture/src-tauri
strategy:
fail-fast: false
matrix:
package:
- name: tauri-bundler
registryName: tauri-bundler
path: cli/tauri-bundler
publishPath: /target/package
- name: tauri-core
registryName: tauri
path: tauri
publishPath: /target/package
- name: tauri-api
registryName: tauri-api
path: tauri-api
publishPath: /target/package
- name: tauri-updater
registryName: tauri-updater
path: tauri-updater
publishPath: /target/package
- name: tauri-utils
registryName: tauri-utils
path: tauri-utils
publishPath: /target/package
steps:
- uses: actions/checkout@v2
with:
ref: master
toolchain: stable
- name: install webkit2gtk
run: |
sudo apt-get update
sudo apt-get install -y webkit2gtk-4.0
- name: get version
working-directory: ${{ matrix.package.path }}
run: echo ::set-env name=PACKAGE_VERSION::$(sed -nE 's/^\s*version = "(.*?)"/\1/p' Cargo.toml)
- name: check published version
run: echo ::set-env name=PUBLISHED_VERSION::$(cargo search ${{ matrix.package.registryName }} --limit 1 | sed -nE 's/^[^"]*"//; s/".*//1p' -)
- name: cargo login
if: env.PACKAGE_VERSION != env.PUBLISHED_VERSION
run: cargo login ${{ secrets.crate_token }}
- name: cargo package
if: env.PACKAGE_VERSION != env.PUBLISHED_VERSION
working-directory: ${{ matrix.package.path }}
run: |
echo "package dir:"
ls
cargo package --no-verify
echo "We will publish:" $PACKAGE_VERSION
echo "This is current latest:" $PUBLISHED_VERSION
echo "post package dir:"
cd ${{ matrix.publishPath }}
ls
- name: cargo audit
if: env.PACKAGE_VERSION != env.PUBLISHED_VERSION
working-directory: ${{ matrix.package.path }}
run: |
cargo install cargo-audit
echo "# Cargo Audit" | tee -a ${{runner.workspace }}/notes.md
echo "```" >> ${{runner.workspace }}/notes.md
cargo audit 2>&1 | tee -a ${{runner.workspace }}/notes.md
echo "```" >> ${{runner.workspace }}/notes.md
- name: Publish ${{ matrix.package.name }}
if: env.PACKAGE_VERSION != env.PUBLISHED_VERSION
working-directory: ${{ matrix.package.path }}
run: |
echo "# Cargo Publish" | tee -a ${{runner.workspace }}/notes.md
echo "```" >> ${{runner.workspace }}/notes.md
cargo publish --no-verify 2>&1 | tee -a ${{runner.workspace }}/notes.md
echo "```" >> ${{runner.workspace }}/notes.md
- name: Create Release
id: create_crate_release
if: env.PACKAGE_VERSION != env.PUBLISHED_VERSION
uses: jbolda/create-release@v1.1.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ matrix.package.name }}-v${{ env.PACKAGE_VERSION }}
release_name: "Release ${{ matrix.package.name }} v${{ env.PACKAGE_VERSION }} [crates.io]"
bodyFromFile: ./../notes.md
draft: false
prerelease: false
- name: Upload Release Asset
id: upload-release-asset
if: env.PACKAGE_VERSION != env.PUBLISHED_VERSION
uses: actions/upload-release-asset@v1.0.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_crate_release.outputs.upload_url }}
asset_path: ./${{ matrix.package.publishPath }}/${{ matrix.package.registryName }}-${{ env.PACKAGE_VERSION }}.crate
asset_name: ${{ matrix.package.registryName }}-${{ env.PACKAGE_VERSION }}.crate
asset_content_type: application/x-gtar
- name: Tangle Release
id: tangle_release
if: env.PACKAGE_VERSION != env.PUBLISHED_VERSION
uses: iotaledger/gh-tangle-release@v0.5.2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
IOTA_SEED: ${{ secrets.IOTA_SEED }}
with:
tag_name: ${{ matrix.package.name }}-v${{ env.PACKAGE_VERSION }}
comment: "Release ${{ matrix.package.name }} v${{ env.PACKAGE_VERSION }} [crates.io]"