innernet/.github/workflows/release-artifacts.yml

91 lines
2.4 KiB
YAML

name: "Upload Release Artifacts"
on:
push:
tags:
- 'v*'
jobs:
build-deb:
name: 'Build Debian packages'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Creating environment variables
run: echo "release_version=${git_ref#v}" >> $GITHUB_ENV
env:
git_ref: ${{ github.ref }}
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- name: Install Dependencies
env:
ACCEPT_EULA: Y
run: sudo apt-get -y update && sudo apt-get install -f && sudo apt-get -y install libsqlite3-dev libclang-9-dev
- name: Cache cargo registry
uses: actions/cache@v2
with:
path: ~/.cargo/registry
key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }}
- name: Cache cargo index
uses: actions/cache@v2
with:
path: ~/.cargo/git
key: ${{ runner.os }}-cargo-index-${{ hashFiles('**/Cargo.lock') }}
- name: Cache cargo build
uses: actions/cache@v2
with:
path: target
key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }}
- name: Cache cargo bin
uses: actions/cache@v2
with:
path: ~/.cargo/bin
key: ${{ runner.os }}-cargo-bin-${{ hashFiles('**/Cargo.lock') }}
- name: Build
uses: actions-rs/cargo@v1
with:
command: build
args: --verbose
- name: Test
uses: actions-rs/cargo@v1
with:
command: test
args: --verbose
- name: Install cargo-deb (if missing)
run: |
which cargo-deb || cargo install cargo-deb
- name: Build Debian Server Package
uses: actions-rs/cargo@v1
with:
command: deb
args: -p server
- name: Build Debian Client Package
uses: actions-rs/cargo@v1
with:
command: deb
args: -p client
- name: Save DEBs
uses: actions/upload-artifact@v2
with:
name: packaged-deb
path: target/debian/*.deb
release:
name: 'Release packages'
runs-on: ubuntu-latest
needs: [build-deb]
steps:
- name: Get artifacts
uses: actions/download-artifact@v2
- name: Release
uses: softprops/action-gh-release@v1
with:
files: |
packaged-deb/*.deb
packaged-rpm/*.rpm
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}