summaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
authorRoy Ivy III <rivy.dev@gmail.com>2019-11-20 23:53:27 -0600
committerPierre Peltier <dev@halium.fr>2019-12-04 11:09:11 +0100
commitb3de96b574e83bfcb2a18e7e35e7a6bddcbd99cb (patch)
treed6c307259b67877dbb258b1f9997c65951c29234 /.github
parentbe98c91038289ff53807c86bc013b6bb5226dba8 (diff)
maint/cicd ~ add MacOS build/deploy to GHA
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/CICD.yml75
1 files changed, 72 insertions, 3 deletions
diff --git a/.github/workflows/CICD.yml b/.github/workflows/CICD.yml
index 3f28f96..39564b8 100644
--- a/.github/workflows/CICD.yml
+++ b/.github/workflows/CICD.yml
@@ -1,6 +1,6 @@
name: CICD
-# spell-checker:ignore CICD MSVC clippy mkdir musl rustfmt softprops toolchain
+# spell-checker:ignore CICD MSVC MacOS SHAs clippy esac gnueabihf mkdir musl rustfmt softprops toolchain
env:
PROJECT_NAME: lsd
@@ -14,7 +14,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- os: [ ubuntu-latest, windows-latest ]
+ os: [ ubuntu-latest, windows-latest, macos-latest ]
steps:
- uses: actions/checkout@v1
- name: Install `rust` toolchain
@@ -45,7 +45,7 @@ jobs:
- arm-unknown-linux-gnueabihf
- i686-unknown-linux-gnu
- i686-unknown-linux-musl
- - x86_64-apple-darwin
+ # - x86_64-apple-darwin
- x86_64-unknown-linux-gnu
- x86_64-unknown-linux-musl
# - i686-pc-windows-gnu
@@ -107,6 +107,75 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ build_mac:
+ name: Build (mac)
+ runs-on: macos-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ target:
+ - x86_64-apple-darwin
+ # - x86_64-unknown-linux-gnu
+ # - x86_64-unknown-linux-musl
+ # - i686-pc-windows-gnu
+ # - x86_64-pc-windows-gnu
+ env:
+ EXE_suffix: ""
+ steps:
+ - uses: actions/checkout@v1
+ - name: Parse branch info
+ id: branch_info
+ shell: bash
+ run: |
+ # ref: <https://github.community/t5/GitHub-Actions/How-to-get-just-the-tag-name/td-p/31595/page/2>
+ SOURCE_NAME=${GITHUB_REF#refs/*/}
+ unset SOURCE_BRANCH; case ${GITHUB_REF} in refs/heads/*) SOURCE_BRANCH=${GITHUB_REF#refs/heads/};; esac;
+ unset SOURCE_TAG; case ${GITHUB_REF} in refs/tags/*) SOURCE_TAG=${GITHUB_REF#refs/tags/};; esac;
+ SOURCE_SHAS=${GITHUB_SHA:0:8}
+ PKG_NAME=${PROJECT_NAME}-${SOURCE_TAG:-$SOURCE_SHAS}-${{ matrix.target }}${EXE_suffix}
+ echo ::set-output name=SOURCE_NAME::${SOURCE_NAME}
+ echo ::set-output name=SOURCE_BRANCH::${SOURCE_BRANCH}
+ echo ::set-output name=SOURCE_TAG::${SOURCE_TAG}
+ echo ::set-output name=SOURCE_SHAS::${SOURCE_SHAS}
+ echo ::set-output name=PKG_NAME::${PKG_NAME}
+ - name: Create all needed build/work directories
+ shell: bash
+ run: mkdir -p 'package'
+ - name: Install `rust` toolchain
+ uses: actions-rs/toolchain@v1
+ with:
+ toolchain: stable
+ target: ${{ matrix.target }}
+ override: true
+ profile: minimal # minimal component installation (ie, no documentation)
+ - name: Build
+ uses: actions-rs/cargo@v1
+ with:
+ use-cross: true
+ command: build
+ args: --release --target=${{ matrix.target }}
+ - name: Test
+ uses: actions-rs/cargo@v1
+ with:
+ use-cross: true
+ command: test
+ args: --target=${{ matrix.target }}
+ - name: Archive executable artifacts
+ uses: actions/upload-artifact@master
+ with:
+ name: ${{ env.PROJECT_NAME }}-${{ matrix.target }}
+ path: target/${{ matrix.target }}/release/${{ env.PROJECT_NAME }}${{ env.EXE_suffix }}
+ - name: Package
+ shell: bash
+ run: cp 'target/${{ matrix.target }}/release/${{ env.PROJECT_NAME }}${{ env.EXE_suffix }}' 'package/${{ steps.branch_info.outputs.PKG_NAME }}'
+ - name: Publish
+ uses: softprops/action-gh-release@v1
+ if: startsWith(github.ref, 'refs/tags/v')
+ with:
+ files: package/${{ steps.branch_info.outputs.PKG_NAME }}
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
build_windows:
name: Build (windows)
runs-on: windows-latest