From 4003b1f8292dc59e606ac8ae0fe59151c29a1081 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Videla?= Date: Mon, 18 Nov 2024 08:34:54 -0500 Subject: [PATCH] Create test-collection.yaml --- .github/workflows/test-collection.yaml | 141 +++++++++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 .github/workflows/test-collection.yaml diff --git a/.github/workflows/test-collection.yaml b/.github/workflows/test-collection.yaml new file mode 100644 index 0000000000..8b10d541a3 --- /dev/null +++ b/.github/workflows/test-collection.yaml @@ -0,0 +1,141 @@ +--- +name: Check Collection + +on: + 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 diff --cached --quiet --exit-code || \ + 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"