Check Collection #880
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: Check Collection | |
on: | |
schedule: | |
- cron: '0 21 * * *' | |
workflow_dispatch: | |
permissions: write-all | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
check_db: | |
name: Check package collection | |
runs-on: ubuntu-latest | |
env: | |
PACK_DIR: /root/.pack | |
GOFLAGS: "-buildvcs=false" | |
strategy: | |
fail-fast: false | |
container: ghcr.io/stefan-hoeck/idris2-pack:latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Make output | |
run: mkdir -p "$HOME/output" | |
- name: Install dependencies | |
run: | | |
apt-get update | |
apt-get install --yes libgsl-dev | |
apt-get install --yes libpq-dev | |
# ncurses-idris: | |
apt-get install --yes libncurses-dev libc6-dev | |
# sqlite3: | |
apt-get install --yes libsqlite3-dev | |
# idrisGL: | |
apt-get install --yes libsdl1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl2-image-dev libsdl2-ttf-dev libsdl2-gfx-dev libsdl2-mixer-dev | |
# idris2-go: | |
apt-get install --yes golang-go | |
# libuv | |
apt-get install --yes libuv1-dev | |
# rtlsdr | |
apt-get install --yes librtlsdr-dev | |
# node codegen: | |
apt-get install --yes nodejs | |
# spidr ecosystem | |
apt-get install --yes curl | |
- name: Use latest pack commit | |
run: pack update | |
- name: Install pack-admin | |
run: pack --no-prompt install-app pack-admin | |
- name: Copy HEAD | |
run: cp collections/HEAD.toml "$PACK_DIR/db/HEAD.toml" | |
- name: Extract Collection from HEAD | |
run: pack-admin --no-prompt extract-from-head "$PACK_DIR/db/testdb.toml" | |
- name: Switch Collection | |
run: pack --no-prompt switch "testdb" | |
- name: Re-Install pack-admin | |
run: pack --no-prompt install-app pack-admin | |
- name: Check Collection | |
run: pack-admin --no-prompt --with-docs --use-katla check-collection "$HOME/output/" | |
- name: Save generated files | |
uses: actions/upload-artifact@master | |
with: | |
name: freshly-generated-status | |
path: ~/output/* | |
if-no-files-found: error | |
upload: | |
name: Upload generated files to main | |
runs-on: ubuntu-latest | |
needs: | |
- check_db | |
steps: | |
- name: Checkout pack-db | |
uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
fetch-depth: 0 | |
- name: Get generated files | |
uses: actions/download-artifact@master | |
with: | |
name: freshly-generated-status | |
path: ~/output/ | |
- name: Add files | |
run: | | |
cp ~/output/STATUS.md STATUS.md | |
[ -f ~/output/testdb.toml ] && cp ~/output/testdb.toml "collections/nightly-$(date +%y%m%d).toml" | |
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com" | |
git config --local user.name "github-actions[bot]" | |
git add STATUS.md | |
git add collections/* | |
- name: Git commit | |
run: git commit -m "[ check ] collection update" -m "$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" | |
- name: Push changes | |
if: always() | |
uses: ad-m/github-push-action@master | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
branch: ${{ github.ref }} | |
- name: Fail if missing | |
run: test -f "$HOME/output/testdb.toml" | |
upload_docs: | |
name: Upload generated API docs | |
runs-on: ubuntu-latest | |
needs: | |
- check_db | |
steps: | |
- name: Checkout pack-db | |
uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
fetch-depth: 0 | |
ref: 'docs' | |
- name: Get generated files | |
uses: actions/download-artifact@master | |
with: | |
name: freshly-generated-status | |
path: ~/output/ | |
- name: Add files | |
run: | | |
cp -a ~/output/docs/* docs | |
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com" | |
git config --local user.name "github-actions[bot]" | |
git add docs | |
- name: Git commit | |
run: git commit -m "[ docs ] CI docs generation" -m "$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" | |
- name: Push changes | |
if: always() | |
uses: ad-m/github-push-action@master | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
branch: 'docs' | |
- name: Fail if missing | |
run: test -f "$HOME/output/testdb.toml" |