Merge pull request #1300 from alephdata/pudo/topics-admin #2963
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: build | |
on: [push] | |
jobs: | |
python: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python: | |
- "3.8" | |
- "3.9" | |
- "3.10" | |
- "3.11" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Show ref | |
run: | | |
echo "$GITHUB_REF" | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
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 | |
pip install -e ".[dev]" | |
- name: Run checks for default model | |
run: | | |
python contrib/check_model.py | |
- 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: | |
user: __token__ | |
password: ${{ secrets.pypi_password }} | |
packages_dir: dist/ | |
skip_existing: true | |
nodejs: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
node-version: [16.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@v5 | |
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@v5 | |
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 |