Skip to content

Merge pull request #296 from stocnet/develop #94

Merge pull request #296 from stocnet/develop

Merge pull request #296 from stocnet/develop #94

Workflow file for this run

on:
push:
branches:
- main
name: Check and release
jobs:
build:
name: Build for ${{ matrix.config.os }}
runs-on: ${{ matrix.config.os }}
strategy:
fail-fast: false
matrix:
config:
- {os: macOS-latest, r: 'release', artifact_name: '*.tar.gz', asset_name: macOS}
- {os: windows-latest, r: 'release', artifact_name: '*.zip', asset_name: winOS}
- {os: ubuntu-latest, r: 'release', artifact_name: '*.tar.gz', asset_name: linuxOS}
env:
R_REMOTES_NO_ERRORS_FROM_WARNINGS: true
RSPM: ${{ matrix.config.rspm }}
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
steps:
- uses: actions/checkout@v2
- uses: r-lib/actions/setup-r@v2
with:
r-version: ${{ matrix.config.r }}
- uses: r-lib/actions/setup-pandoc@v2
- uses: r-lib/actions/setup-r-dependencies@v2
with:
cache-version: 2
extra-packages: |
any::rcmdcheck
any::covr
any::remotes
needs: check
- uses: r-lib/actions/check-r-package@v2
env:
_R_CHECK_FORCE_SUGGESTS_: false
with:
upload-snapshots: true
- name: Binary
run: |
pkgbuild::clean_dll()
binary <- pkgbuild::build(binary = TRUE, needs_compilation = TRUE, compile_attributes = TRUE)
dir.create("build")
file.copy(binary, "build")
shell: Rscript {0}
- name: Save binary artifact
uses: actions/upload-artifact@v1
with:
name: ${{ matrix.config.asset_name }}
path: build/
- name: Calculate code coverage
run: Rscript -e "covr::codecov()"
release:
name: Bump version and release
if: ${{ always() }}
needs: build
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout one
uses: actions/checkout@master
with:
fetch-depth: '0'
- name: Bump version and push tag
id: newtag
uses: anothrNick/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
WITH_V: true
DEFAULT_BUMP: patch
RELEASE_BRANCHES: main
- name: Checkout two
uses: actions/checkout@v2
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ steps.newtag.outputs.tag }}
release_name: Release ${{ steps.newtag.outputs.tag }}
draft: false
prerelease: false
- name: Download binaries
uses: actions/download-artifact@v2
- name: Display structure of downloaded files
run: ls -R
- name: Rename Mac release
run: mv ./macOS/*.tgz migraph_macOS.tgz
- name: Upload Mac binary
id: upload-mac
uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
asset_path: migraph_macOS.tgz
asset_name: migraph_macOS.tgz
asset_content_type: application/zip
- name: Rename Linux release
run: mv ./linuxOS/*.tar.gz migraph_linuxOS.tar.gz
- name: Upload Linux binary
id: upload-lin
uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
asset_path: migraph_linuxOS.tar.gz
asset_name: migraph_linuxOS.tar.gz
asset_content_type: application/zip
- name: Rename Windows release
run: mv ./winOS/*.zip migraph_winOS.zip
- name: Upload Windows binary
id: upload-win
uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
asset_path: migraph_winOS.zip
asset_name: migraph_winOS.zip
asset_content_type: application/zip
pkgdown:
name: Build and deploy website
if: ${{ always() }}
needs: release
runs-on: macOS-latest
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
steps:
- uses: actions/checkout@v2
- uses: r-lib/actions/setup-r@v2
- uses: r-lib/actions/setup-pandoc@v1
- uses: r-lib/actions/setup-r-dependencies@v2
with:
cache-version: 2
extra-packages: |
any::rcmdcheck
any::pkgdown
any::rsconnect
needs: check
- name: Install package
run: R CMD INSTALL .
- name: Deploy package
run: |
git config --local user.email "[email protected]"
git config --local user.name "GitHub Actions"
Rscript -e 'pkgdown::deploy_to_branch(new_process = FALSE)'