Update import.qmd (#629) #146
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: biocbook | |
on: | |
push: | |
branches: | |
- devel | |
- RELEASE_** | |
jobs: | |
build-push: | |
runs-on: ubuntu-latest | |
name: build-book (${{ github.ref_name }}) | |
permissions: | |
contents: write | |
packages: write | |
steps: | |
- name: π§Ύ Checkout repository | |
uses: actions/checkout@v3 | |
- name: β³ Collect Workflow Telemetry | |
uses: runforesight/workflow-telemetry-action@v1 | |
- name: π§Ή Clean up Docker environment | |
run: | | |
docker system prune --all --force --volumes | |
- name: π§Ή Additional disk space cleanup | |
run: | | |
sudo rm -rf /usr/share/dotnet | |
sudo rm -rf /opt/ghc | |
sudo rm -rf /usr/local/lib/android/sdk | |
sudo apt-get clean | |
sudo rm -rf /var/lib/apt/lists/* | |
- name: π³ Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: π³ Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: π¦ Cache Docker layers | |
uses: actions/cache@v3 | |
with: | |
path: /tmp/.buildx-cache | |
key: ${{ runner.os }}-buildx-${{ github.sha }} | |
restore-keys: | | |
${{ runner.os }}-buildx- | |
- name: π Get book info | |
id: info | |
env: | |
OWNER: ${{ github.repository_owner }} | |
run: | | |
Pkgname=$(grep -m1 -E '^Package: +' DESCRIPTION | sed -E 's/.*: +//') | |
echo Pkgname=${Pkgname} >> "${GITHUB_ENV}" | |
pkgname=${Pkgname,,} | |
echo pkgname=${pkgname} >> "${GITHUB_ENV}" | |
owner=${OWNER,,} | |
echo owner=${owner} >> "${GITHUB_ENV}" | |
echo pkgversion=$(grep -m1 -E '^Version: +' DESCRIPTION | sed -E 's/.*: +//') >> "${GITHUB_ENV}" | |
- name: π Log in to the Github Container registry | |
uses: docker/login-action@v2 | |
with: | |
registry: ghcr.io | |
username: ${{ env.owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: π· Get metadata for Docker | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: ghcr.io/${{ env.owner }}/${{ env.pkgname }} | |
tags: | | |
${{ github.ref_name }} | |
${{ env.pkgversion }} | |
type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', 'devel') }} | |
- name: π¦ Install, build and check package in local Docker image | |
id: docker | |
uses: docker/build-push-action@v4 | |
with: | |
context: . | |
load: true | |
cache-from: type=local,src=/tmp/.buildx-cache | |
cache-to: type=local,dest=/tmp/.buildx-cache | |
tags: ${{ steps.meta.outputs.tags }} | |
build-args: | | |
BIOC_VERSION=${{ github.ref_name }} | |
- name: π Push local Docker image to ghcr.io | |
uses: docker/build-push-action@v4 | |
with: | |
context: . | |
push: true | |
cache-from: type=local,src=/tmp/.buildx-cache | |
cache-to: type=local,dest=/tmp/.buildx-cache | |
tags: ${{ steps.meta.outputs.tags }} | |
build-args: | | |
BIOC_VERSION=${{ github.ref_name }} | |
- name: π Recover pkg artifacts generated during build in local Docker container (pkg bundle and book) | |
env: | |
IMG: ${{ steps.docker.outputs.ImageID }} | |
run: | | |
SHA=$(docker container create ${{ env.IMG }}) | |
docker container cp ${SHA}:/${{ env.Pkgname }}_${{ env.pkgversion }}.tar.gz . | |
tar --extract --gzip --file ${{ env.Pkgname }}_${{ env.pkgversion }}.tar.gz | |
echo bundle_path=${{ env.Pkgname }}_${{ env.pkgversion }}.tar.gz >> "${GITHUB_ENV}" | |
echo book_path=${{ env.Pkgname }}/inst/doc/book/ >> "${GITHUB_ENV}" | |
- name: π· Get gh-branch directory to deploy to | |
run: | | |
echo target_folder=$(echo ${{ github.ref_name }} | sed 's,RELEASE_,,' | tr '_' '.') >> "${GITHUB_ENV}" | |
- name: π Deploy book to Github Pages on versioned branch | |
uses: JamesIves/[email protected] | |
with: | |
folder: ${{ env.book_path }}/ | |
target-folder: docs/${{ env.target_folder }}/ | |
branch: gh-pages | |
clean: false | |
- name: πΎ Upload package bundle artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: bundle | |
path: ${{ env.bundle_path }} | |
- name: πΎ Upload book artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: book | |
path: ${{ env.book_path }} |