Skip to content

IRS GIIN ID (#1589) #3594

IRS GIIN ID (#1589)

IRS GIIN ID (#1589) #3594

Workflow file for this run

name: build
on: [push]
permissions:
id-token: write
packages: write
contents: read
jobs:
python:
runs-on: ubuntu-latest
strategy:
matrix:
python:
- "3.9"
- "3.10"
- "3.11"
- "3.12"
steps:
- uses: actions/checkout@v4
- name: Show ref
run: |
echo "$GITHUB_REF"
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}
- name: Install dependencies
env:
DEBIAN_FRONTEND: noninteractive
run: |
sudo apt-get update -y -qq
sudo apt-get install -y -qq libicu-dev
pip install wheel pyicu setuptools
pip install -e ".[dev]"
- name: Run checks for default model
run: |
python contrib/check_model.py
make default-model
git diff
if [[ -z "$(git status --porcelain)" ]];
then
echo "Default model is up to date 👌"
else
echo "⚠️ Default model is not up to date. You need to run `make default-model` and commit the changes.";
exit 1;
fi;
- name: Run the tests
run: |
make test
- name: Partial mypy type-check
run: |
make typecheck
- name: Build a followthemoney distribution
run: |
python setup.py sdist bdist_wheel
- name: Publish followthemoney to PyPI
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
uses: pypa/gh-action-pypi-publish@release/v1
with:
packages-dir: dist/
skip-existing: true
verbose: true
nodejs:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [22.x]
steps:
- uses: actions/checkout@v4
- name: Set up Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: |
cd js
npm install
npm run build
- name: Run the tests
run: |
cd js
npm run test:prod && npm run lint
- name: Publish to NPM
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
run: |
cd js
npm config set //registry.npmjs.org/:_authToken=$NPM_AUTH_TOKEN
npm run build
npm publish
env:
CI: true
NPM_AUTH_TOKEN: ${{ secrets.npm_auth_token }}
docker:
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags')
steps:
- uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
install: true
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: ghcr.io/alephdata/followthemoney
tags: |
type=ref,event=branch
type=semver,pattern={{version}}
type=sha
- name: Set env
run: echo "VERSION_NUMBER=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV
- name: Login to GitHub Packages
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build docker image
uses: docker/build-push-action@v6
with:
context: .
platforms: linux/amd64,linux/arm64
cache-from: type=gha
- name: Build and push docker image
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags')
uses: docker/build-push-action@v6
with:
context: .
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max