mirror of
https://github.com/Zedfrigg/ironbar.git
synced 2025-04-20 11:54:23 +02:00
This PR includes the necessary code changes, CI changes and documentation to generate and deploy a full JSON schema for each release and the master branch, which can be used within config files for autocomplete and type checking.
87 lines
No EOL
2.1 KiB
YAML
87 lines
No EOL
2.1 KiB
YAML
name: Deploy
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- v[0-9]+.[0-9]+.[0-9]+
|
|
|
|
jobs:
|
|
release:
|
|
name: 'Create Release'
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Update CHANGELOG
|
|
id: changelog
|
|
uses: Requarks/changelog-action@v1
|
|
with:
|
|
token: ${{ github.token }}
|
|
tag: ${{ github.ref_name }}
|
|
excludeTypes: 'build,chore,style'
|
|
|
|
- name: Create release
|
|
uses: ncipollo/release-action@v1
|
|
with:
|
|
allowUpdates: true
|
|
draft: false
|
|
name: ${{ github.ref_name }}
|
|
body: ${{ steps.changelog.outputs.changes }}
|
|
token: ${{ github.token }}
|
|
|
|
- name: Commit CHANGELOG.md
|
|
uses: stefanzweifel/git-auto-commit-action@v4
|
|
with:
|
|
branch: master
|
|
commit_message: 'chore: update CHANGELOG.md for ${{ github.ref_name }} [skip ci]'
|
|
file_pattern: CHANGELOG.md
|
|
|
|
|
|
publish-crate:
|
|
name: 'Publish Crate'
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
override: true
|
|
|
|
- name: Install build deps
|
|
run: ./.github/scripts/ubuntu_setup.sh
|
|
|
|
- name: Publish crate
|
|
uses: katyo/publish-crates@v1
|
|
with:
|
|
registry-token: ${{ secrets.CARGO_REGISTRY_TOKEN }}
|
|
|
|
|
|
publish-schema:
|
|
name: 'Publish Schema'
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- uses: Swatinem/rust-cache@v2
|
|
name: Cache dependencies
|
|
|
|
- name: Install build deps
|
|
run: ./.github/scripts/ubuntu_setup.sh
|
|
|
|
- name: Build schema
|
|
run: cargo build --features schema -- --print-schema > target/schema-${{ github.ref_name }}.json
|
|
|
|
- name: Copy file via SSH
|
|
uses: appleboy/scp-action@v0.1.7
|
|
with:
|
|
host: ${{ secrets.SSH_HOST }}
|
|
port: ${{ secrets.SSH_PORT }}
|
|
username: ${{ secrets.SSH_USERNAME }}
|
|
key: ${{ secrets.SSH_PRIVATE_KEY }}
|
|
source: "target/schema-${{ github.ref_name }}.json"
|
|
target: /storage/Public/github/ironbar
|
|
strip_components: 1 |