mirror of
https://github.com/plexusorg/IBConverter.git
synced 2024-12-21 23:35:06 +00:00
Update build.yml
This commit is contained in:
parent
46c1532707
commit
58b9df762e
1 changed files with 7 additions and 267 deletions
274
.github/workflows/build.yml
vendored
274
.github/workflows/build.yml
vendored
|
@ -1,277 +1,17 @@
|
||||||
'on':
|
name: Build
|
||||||
push:
|
|
||||||
branches:
|
on: [ push ]
|
||||||
- '*'
|
|
||||||
pull_request: null
|
|
||||||
jobs:
|
jobs:
|
||||||
check:
|
build_and_test:
|
||||||
|
name: IBConverter
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- 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
|
- uses: actions-rs/toolchain@v1
|
||||||
with:
|
with:
|
||||||
profile: minimal
|
|
||||||
toolchain: stable
|
toolchain: stable
|
||||||
override: true
|
|
||||||
- uses: actions-rs/cargo@v1
|
- 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:
|
with:
|
||||||
command: build
|
command: build
|
||||||
args: '--release'
|
args: --release --all-features
|
||||||
- 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
|
|
||||||
|
|
Loading…
Reference in a new issue