mirror of
https://github.com/plexusorg/IBConverter.git
synced 2024-11-14 16:33:34 +00:00
277 lines
10 KiB
YAML
277 lines
10 KiB
YAML
'on':
|
|
push:
|
|
branches:
|
|
- '*'
|
|
pull_request: null
|
|
jobs:
|
|
check:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions/cache@v1
|
|
with:
|
|
path: ~/.cargo/registry
|
|
key: '${{ runner.os }}-cargo-registry-${{ hashFiles(''**/Cargo.lock'') }}'
|
|
- uses: actions/cache@v1
|
|
with:
|
|
path: ~/.cargo/git
|
|
key: '${{ runner.os }}-cargo-index-${{ hashFiles(''**/Cargo.lock'') }}'
|
|
- uses: actions/cache@v1
|
|
with:
|
|
path: target
|
|
key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }}
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
profile: minimal
|
|
toolchain: stable
|
|
override: true
|
|
- uses: actions-rs/cargo@v1
|
|
with:
|
|
command: check
|
|
test:
|
|
runs-on: '${{ matrix.os }}'
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- os: macos-latest
|
|
- os: ubuntu-latest
|
|
- os: windows-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions/cache@v1
|
|
with:
|
|
path: ~/.cargo/registry
|
|
key: '${{ runner.os }}-cargo-registry-${{ hashFiles(''**/Cargo.lock'') }}'
|
|
- uses: actions/cache@v1
|
|
with:
|
|
path: ~/.cargo/git
|
|
key: '${{ runner.os }}-cargo-index-${{ hashFiles(''**/Cargo.lock'') }}'
|
|
- uses: actions/cache@v1
|
|
with:
|
|
path: target
|
|
key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }}
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
profile: minimal
|
|
toolchain: stable
|
|
override: true
|
|
- uses: actions-rs/cargo@v1
|
|
with:
|
|
command: test
|
|
- uses: actions-rs/cargo@v1
|
|
with:
|
|
command: run
|
|
args: '-- -h'
|
|
lints:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions/cache@v1
|
|
with:
|
|
path: ~/.cargo/registry
|
|
key: '${{ runner.os }}-cargo-registry-${{ hashFiles(''**/Cargo.lock'') }}'
|
|
- uses: actions/cache@v1
|
|
with:
|
|
path: ~/.cargo/git
|
|
key: '${{ runner.os }}-cargo-index-${{ hashFiles(''**/Cargo.lock'') }}'
|
|
- uses: actions/cache@v1
|
|
with:
|
|
path: target
|
|
key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }}
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
profile: minimal
|
|
toolchain: stable
|
|
override: true
|
|
components: 'rustfmt, clippy'
|
|
- uses: actions-rs/cargo@v1
|
|
with:
|
|
command: fmt
|
|
args: '--all -- --check'
|
|
- uses: actions-rs/cargo@v1
|
|
with:
|
|
command: clippy
|
|
args: '-- -D warnings'
|
|
version:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@master
|
|
with:
|
|
lfs: true
|
|
- run: git fetch --depth=1 origin +refs/tags/*:refs/tags/*
|
|
- id: get_previous_version
|
|
run: echo ::set-output name=PREVIOUS_VERSION::$(git describe --tags "$(git rev-list --tags --max-count=1)")
|
|
shell: bash
|
|
- id: semvers
|
|
uses: WyriHaximus/github-action-next-semvers@master
|
|
with:
|
|
version: '${{ steps.get_previous_version.outputs.PREVIOUS_VERSION }}'
|
|
- run: mkdir -p ./version
|
|
- if: "!contains(github.event.head_commit.message, 'BC BREAK') && !contains(github.event.head_commit.message, 'Signed-off-by: dependabot-preview[bot] <support@dependabot.com>')"
|
|
run: echo "$VERSION" >./version/version
|
|
env:
|
|
VERSION: ${{ steps.semvers.outputs.v_minor }}
|
|
- if: "contains(github.event.head_commit.message, 'Signed-off-by: dependabot-preview[bot] <support@dependabot.com>')"
|
|
run: echo "$VERSION" >./version/version
|
|
env:
|
|
VERSION: ${{ steps.semvers.outputs.v_patch }}
|
|
- run: echo "$VERSION" > ./version/version
|
|
env:
|
|
VERSION: ${{ steps.semvers.outputs.v_major }}
|
|
if: "contains(github.event.head_commit.message, 'BC BREAK')"
|
|
- uses: actions/upload-artifact@master
|
|
with:
|
|
name: version
|
|
path: ./version/version
|
|
build:
|
|
needs:
|
|
- version
|
|
- lints
|
|
- test
|
|
- check
|
|
runs-on: '${{ matrix.os }}'
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- os: macos-latest
|
|
target: x86_64-apple-darwin
|
|
suffix: ''
|
|
- os: ubuntu-latest
|
|
target: x86_64-unknown-linux-gnu
|
|
suffix: ''
|
|
- os: windows-latest
|
|
target: x86_64-pc-windows-msvc
|
|
suffix: .exe
|
|
steps:
|
|
- uses: actions/checkout@master
|
|
with:
|
|
lfs: true
|
|
- id: get_repository_name
|
|
run: echo ::set-output name=REPOSITORY_NAME::$(echo "$GITHUB_REPOSITORY" | awk -F / '{print $2}' | sed -e "s/:refs//")
|
|
shell: bash
|
|
- uses: actions/download-artifact@master
|
|
with:
|
|
name: version
|
|
- id: get_version
|
|
run: 'echo ::set-output "name=VERSION::$(cat ./version/version)"'
|
|
shell: bash
|
|
- uses: actions/cache@v1
|
|
with:
|
|
path: ~/.cargo/registry
|
|
key: '${{ runner.os }}-cargo-registry-${{ hashFiles(''**/Cargo.lock'') }}'
|
|
- uses: actions/cache@v1
|
|
with:
|
|
path: ~/.cargo/git
|
|
key: '${{ runner.os }}-cargo-index-${{ hashFiles(''**/Cargo.lock'') }}'
|
|
- uses: actions/cache@v1
|
|
with:
|
|
path: target
|
|
key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }}
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
profile: minimal
|
|
toolchain: stable
|
|
override: true
|
|
- uses: actions-rs/cargo@v1
|
|
with:
|
|
command: install
|
|
args: 'toml-cli'
|
|
- shell: bash
|
|
env:
|
|
VERSION: '${{ steps.get_version.outputs.VERSION }}'
|
|
run: |
|
|
TEMP_FILE="$(mktemp)"
|
|
toml set Cargo.toml package.version "${VERSION:1}" > "$TEMP_FILE"
|
|
mv "$TEMP_FILE" Cargo.toml
|
|
- uses: actions-rs/cargo@v1
|
|
env:
|
|
VERSION: '${{ steps.get_version.outputs.VERSION }}'
|
|
REPOSITORY_NAME: '${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}'
|
|
with:
|
|
command: build
|
|
args: '--release'
|
|
- uses: actions/upload-artifact@master
|
|
with:
|
|
name: ${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}-${{ matrix.target }}
|
|
path: ./target/release/${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}${{ matrix.suffix }}
|
|
release:
|
|
if: github.ref == 'refs/heads/master'
|
|
needs:
|
|
- build
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@master
|
|
with:
|
|
lfs: true
|
|
- id: get_repository_name
|
|
run: echo ::set-output name=REPOSITORY_NAME::$(echo "$GITHUB_REPOSITORY" | awk -F / '{print $2}' | sed -e "s/:refs//")
|
|
shell: bash
|
|
- uses: actions/download-artifact@master
|
|
with:
|
|
name: version
|
|
- id: get_version
|
|
run: 'echo ::set-output name=VERSION::$(cat ./version/version)'
|
|
shell: bash
|
|
- uses: actions/download-artifact@master
|
|
with:
|
|
name: ${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}-x86_64-unknown-linux-gnu
|
|
- uses: actions/download-artifact@master
|
|
with:
|
|
name: ${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}-x86_64-apple-darwin
|
|
- uses: actions/download-artifact@master
|
|
with:
|
|
name: ${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}-x86_64-pc-windows-msvc
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
profile: minimal
|
|
toolchain: stable
|
|
override: true
|
|
- uses: actions-rs/cargo@v1
|
|
with:
|
|
command: install
|
|
args: 'toml-cli'
|
|
- run: |
|
|
TEMP_FILE="$(mktemp)"
|
|
toml set Cargo.toml package.version "${VERSION:1}" > "$TEMP_FILE"
|
|
mv "$TEMP_FILE" Cargo.toml
|
|
shell: bash
|
|
env:
|
|
VERSION: '${{ steps.get_version.outputs.VERSION }}'
|
|
- uses: stefanzweifel/git-auto-commit-action@v4.1.3
|
|
with:
|
|
commit_message: Bump cargo version
|
|
branch: ${{ github.head_ref }}
|
|
file_pattern: Cargo.toml
|
|
- id: create_release
|
|
uses: actions/create-release@v1.0.0
|
|
env:
|
|
GITHUB_TOKEN: '${{ secrets.COMMITTER_TOKEN }}'
|
|
with:
|
|
tag_name: '${{ steps.get_version.outputs.VERSION }}'
|
|
release_name: 'Release ${{ steps.get_version.outputs.VERSION }}'
|
|
draft: false
|
|
prerelease: false
|
|
- uses: actions/upload-release-asset@v1.0.1
|
|
env:
|
|
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
|
|
with:
|
|
upload_url: '${{ steps.create_release.outputs.upload_url }}'
|
|
asset_path: ./${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}-x86_64-unknown-linux-gnu/${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}
|
|
asset_name: ${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}-x86_64-unknown-linux-gnu
|
|
asset_content_type: application/octet-stream
|
|
- uses: actions/upload-release-asset@v1.0.1
|
|
env:
|
|
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
|
|
with:
|
|
upload_url: '${{ steps.create_release.outputs.upload_url }}'
|
|
asset_path: ./${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}-x86_64-apple-darwin/${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}
|
|
asset_name: ${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}-x86_64-apple-darwin
|
|
asset_content_type: application/octet-stream
|
|
- uses: actions/upload-release-asset@v1.0.1
|
|
env:
|
|
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
|
|
with:
|
|
upload_url: '${{ steps.create_release.outputs.upload_url }}'
|
|
asset_path: ./${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}-x86_64-pc-windows-msvc/${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}.exe
|
|
asset_name: ${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}-x86_64-pc-windows-msvc.exe
|
|
asset_content_type: application/octet-stream |