Skip to content

build

build #1393

Workflow file for this run

name: build
on:
push:
branches: [main]
pull_request:
branches: [main]
repository_dispatch:
types: [build]
jobs:
test:
runs-on: ubuntu-latest
env:
GITHUB_EVENT_NAME: ${{ github.event_name }}
strategy:
fail-fast: false
matrix:
python-version: ["3.11"]
group:
- "by_datatype"
- "by_registry"
- "by_ontology"
timeout-minutes: 25
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: cache pre-commit
uses: actions/cache@v4
with:
path: ~/.cache/pre-commit
key: pre-commit-${{ runner.os }}-${{ hashFiles('.pre-commit-config.yaml') }}
- name: Cache postgres
id: cache-postgres
uses: actions/cache@v4
with:
path: ~/postgres.tar
key: cache-postgres-0
- uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: eu-central-1
- name: Cache postgres miss
if: steps.cache-postgres.outputs.cache-hit != 'true'
run: docker pull postgres:latest && docker image save postgres:latest --output ~/postgres.tar
- name: Cache postgres use
if: steps.cache-postgres.outputs.cache-hit == 'true'
run: docker image load --input ~/postgres.tar
- run: pip install "laminci@git+https://x-access-token:${{ secrets.LAMIN_BUILD_DOCS }}@github.com/laminlabs/laminci"
- name: install postgres graphviz
run: sudo apt-get -y install graphviz
- uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- run: nox -s lint
if: ${{ matrix.python-version == '3.11' && matrix.group == 'unit' }}
- run: nox -s "install(group='${{ matrix.group }}')"
- run: nox -s "build(group='${{ matrix.group }}')"
- name: upload docs
if: ${{ matrix.group == 'by_datatype' || matrix.group == 'by_registry' || matrix.group == 'by_ontology'}}
uses: actions/upload-artifact@v4
with:
name: docs_${{ matrix.group }}
path: docs_${{ matrix.group }}
docs:
needs: test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: checkout lndocs
uses: actions/checkout@v4
with:
repository: laminlabs/lndocs
ssh-key: ${{ secrets.READ_LNDOCS }}
path: lndocs
ref: main
- uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- run: pip install "laminci@git+https://x-access-token:${{ secrets.LAMIN_BUILD_DOCS }}@github.com/laminlabs/laminci"
- run: nox -s "install(group='docs')"
- uses: actions/download-artifact@v4
- run: nox -s docs
- uses: nwtgck/[email protected]
with:
publish-dir: "_build/html"
production-deploy: ${{ github.event_name == 'push' }}
github-token: ${{ secrets.GITHUB_TOKEN }}
enable-commit-comment: false
env:
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
notify:
if: always()
needs: test
runs-on: ubuntu-latest
steps:
- uses: voxmedia/github-action-slack-notify-build@v1
if: ${{ needs.test.result == 'success' && github.event_name == 'repository_dispatch' }}
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_GITHUB_ACTION }}
with:
channel_id: C05FDBBFJ1F
status: SUCCESS
color: good
- uses: voxmedia/github-action-slack-notify-build@v1
if: ${{ needs.test.result == 'failure' && github.event_name == 'repository_dispatch' }}
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_GITHUB_ACTION }}
with:
channel_id: C05FDBBFJ1F
status: FAILURE
color: danger