Skip to content

Publish (litedb)

Publish (litedb) #1

name: Publish
on:
workflow_dispatch:
inputs:
release_kind:
type: choice
description: The type of release.
default: prerelease
required: true
options:
- prerelease
- start-rc
- stable
jobs:
pre-build:
name: Update version name
runs-on: ubuntu-latest
outputs:
litedb-version: ${{ env.LITEDB_VERSION }}
prerelease: ${{ steps.update-version.outputs.prerelease }}
permissions:
contents: write
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- uses: anatawa12/something-releaser@v3
- uses: snow-actions/git-config-user@v1.0.0
- uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}
- name: Update Version Name
id: update-version
run: |
# set version name in properties file
case "$RELEASE_KIND_IN" in
"prerelease" )
get-version -t litedb | version-next | set-version -t litedb
gh-export-variable PRERELEASE true
gh-set-output prerelease true
;;
"start-rc" )
get-version -t litedb | version-set-channel - rc 0 | set-version -t litedb
gh-export-variable PRERELEASE true
gh-set-output prerelease true
;;
"stable" )
get-version -t litedb | version-set-channel - stable | set-version -t litedb
gh-export-variable PRERELEASE false
gh-set-output prerelease '' # empty string for false
;;
* )
echo "invalid release kind: $RELEASE_KIND_IN"
exit 255
;;
esac
case "$GITHUB_REF_NAME" in
master | master-* )
echo "head is master or master-*"
;;
* )
echo "invalid release kind: $RELEASE_KIND_IN is not allowd for $GITHUB_REF_NAME"
exit 255
;;
esac
gh-export-variable LITEDB_VERSION "$(get-version -t litedb)"
env:
RELEASE_KIND_IN: ${{ github.event.inputs.release_kind }}
# check for unexpected breaking ABI changes
- name: Check semver
uses: obi1kenobi/cargo-semver-checks-action@v2
with:
package: vrc-get-litedb
- name: Commit
id: update
run: |-
# commit & tag
git commit -am "litedb v$LITEDB_VERSION"
git branch releasing
git push -f -u origin releasing
publish-crates-io:
name: Publish to crates.io
environment:
name: crates.io
url: https://crates.io/crates/vrc-get
runs-on: ubuntu-latest
needs: [pre-build, build-rust]

Check failure on line 95 in .github/workflows/publish-litedb.yml

View workflow run for this annotation

GitHub Actions / Publish

Invalid workflow file

The workflow is not valid. .github/workflows/publish-litedb.yml (Line: 95, Col: 24): Job 'publish-crates-io' depends on unknown job 'build-rust'. .github/workflows/publish-litedb.yml (Line: 116, Col: 24): Job 'publish-to-github' depends on job 'publish-crates-io' which creates a cycle in the dependency graph.
steps:
- uses: actions/checkout@v3
with:
ref: 'releasing'
fetch-depth: 1
submodules: recursive
- name: Publish CARGO
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CRATES_IO_TOKEN }}
run: cargo publish --package vrc-get-litedb
publish-to-github:
name: Publish to GitHub
environment:
name: actions-github-app
url: https://github.com/anatawa12/vrc-get/releases/litedb-v${{ needs.pre-build.outputs.litedb-version }}
permissions:
contents: write
runs-on: ubuntu-latest
needs: [pre-build, publish-crates-io]
env:
LITEDB_VERSION: ${{ needs.pre-build.outputs.litedb-version }}
steps:
- uses: actions/create-github-app-token@v1
id: app-token
with:
app-id: ${{ secrets.APP_ID }}
private-key: ${{ secrets.PRIVATE_KEY }}
- uses: actions/checkout@v3
with:
ref: 'releasing'
fetch-depth: 2
submodules: recursive
token: ${{ steps.app-token.outputs.token }}
# tools
- uses: anatawa12/something-releaser@v3
- uses: snow-actions/git-config-user@v1.0.0
- uses: dtolnay/rust-toolchain@stable
- name: Push tag
run: |-
# set tag and publish current version
git tag "litedb-v$LITEDB_VERSION"
git push --tags
# create master and push
git switch -c master
git fetch origin master --depth=1
git log --all --graph
git push -u origin master
sleep 1
- name: prepare next release & push
if: ${{ !needs.pre-build.outputs.prerelease }}
run: |
get-version -t litedb | version-next | version-set-channel - beta 0 | set-version -t litedb
LITEDB_NEXT="$(get-version -t litedb | version-stable)"
git commit -am "chore: prepare for next version: litedb $LITEDB_NEXT"
git push
cleanup:
name: Cleanup
if: ${{ !failure() && !cancelled() }}
permissions:
contents: write
runs-on: ubuntu-latest
needs:
- pre-build
- publish-crates-io
- publish-to-github
steps:
- uses: actions/checkout@v3
with:
ref: 'releasing'
fetch-depth: 2
- name: remove releasing branch
run: git push --delete origin releasing