diff options
author | Roy Ivy III <rivy.dev@gmail.com> | 2019-11-20 23:53:27 -0600 |
---|---|---|
committer | Pierre Peltier <dev@halium.fr> | 2019-12-04 11:09:11 +0100 |
commit | b3de96b574e83bfcb2a18e7e35e7a6bddcbd99cb (patch) | |
tree | d6c307259b67877dbb258b1f9997c65951c29234 | |
parent | be98c91038289ff53807c86bc013b6bb5226dba8 (diff) |
maint/cicd ~ add MacOS build/deploy to GHA
-rw-r--r-- | .github/workflows/CICD.yml | 75 |
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 |