ci: fix docker IMG hash #24
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: π³ Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
- name: π³ Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- 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@v3 | |
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 | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
load: true | |
tags: ${{ steps.meta.outputs.tags }} | |
build-args: | | |
BIOC_VERSION=${{ github.ref_name }} | |
- name: π Push local Docker image to ghcr.io | |
id: docker | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
push: true | |
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}" | |
ls -l ./ | |
ls -l ${{ env.Pkgname }} | |
ls -l ${{ env.Pkgname }}/inst/doc/book/ | |
- 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 }} |