Skip to content

fix ci

fix ci #39

Workflow file for this run

name: CI
on:
push:
branches:
- main
- release*
pull_request:
env:
REGISTRY: ghcr.io
REGISTRYPATH: ghcr.io/stac-utils/
PGSTACIMAGE: ghcr.io/stac-utils/pgstac-postgres
PGSTACLATEST: ghcr.io/stac-utils/pgstac-postgres:latest
IMAGE_NAME: ${{ github.repository }}
DOCKER_BUILDKIT: 1
PIP_BREAK_SYSTEM_PACKAGES: 1
PGPASSWORD: postgres
PGHOST: postgres
PGDATABASE: postgres
PGUSER: postgres
POSTGRES_PASSWORD: postgres
SCRIPTS: /home/runner/work/pgstac/pgstac/docker/pypgstac/bin
PGSTACDIR: /home/runner/work/pgstac/pgstac/src/pgstac
PYPGSTACDIR: /home/runner/work/pgstac/pgstac/src/pypgstac
MIGRATIONSDIR: /home/runner/work/pgstac/pgstac/src/pgstac/migrations
TESTS: /home/runner/work/pgstac/pgstac/src/pypgstac/tests
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: docker/setup-buildx-action@v3
- name: Build and Cache Docker layers
uses: docker/bake-action@master
with:
push: false
load: true
allow:
network.host
files: |-
docker-compose.yml
docker-compose-cache.json
- name: Run docker compose
run: |
docker compose up -d pgstac
- name: Execute tests in the running services
run: |
scripts/test --nobuild
- name: Stop Docker
run: |
scripts/nuke
# jobs:
# # This builds a base postgres image that has everything installed to be able to run pgstac.
# buildpg:
# name: Build and push base postgres image
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - name: Docker Meta
# id: meta
# uses: docker/metadata-action@v5
# with:
# images: |
# pgstac
# pgstac/pgstac
# ${{ env.PGSTACIMAGE }}
# tags: |
# type=ref,event=branch
# type=ref,event=pr
# type=semver,pattern={{version}}
# type=semver,pattern={{major}}.{{minor}}
# type=semver,pattern={{major}}
# type=sha
# - uses: docker/setup-buildx-action@v3
# - name: Log in to the Container registry
# uses: docker/login-action@v3
# with:
# registry: ${{ env.REGISTRY }}
# username: ${{ github.actor }}
# password: ${{ secrets.GITHUB_TOKEN }}
# - name: Build and Push Base Postgres
# uses: docker/build-push-action@v6
# with:
# platforms: linux/amd64,linux/arm64
# context: .
# target: pgstac
# file: docker/pgstac/Dockerfile
# tags: ${{ steps.meta.outputs.tags }}
# push: false
# cache-from: type=gha
# cache-to: type=gha, mode=max
# linux_x86_64:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - name: Build wheels
# uses: PyO3/maturin-action@v1
# with:
# working-directory: src/pypgstac
# target: x86_64
# args: --release --out /home/runner/work/pgstac/pgstac/dist
# sccache: 'true'
# manylinux: auto
# - name: Upload wheels
# uses: actions/upload-artifact@v4
# with:
# name: wheels-x86_64
# path: /home/runner/work/pgstac/pgstac/dist/*
# if-no-files-found: error
# linux:
# if: false
# runs-on: ubuntu-latest
# strategy:
# matrix:
# target: [x86, aarch64, armv7, s390x, ppc64le]
# steps:
# - uses: actions/checkout@v4
# - name: Build wheels
# uses: PyO3/maturin-action@v1
# with:
# working-directory: src/pypgstac
# target: ${{ matrix.target }}
# args: --release --out /home/runner/work/pgstac/pgstac/dist
# sccache: 'true'
# manylinux: auto
# - name: Upload wheels
# uses: actions/upload-artifact@v4
# with:
# name: wheels-${{ matrix.target }}
# path: /home/runner/work/pgstac/pgstac/dist/*
# if-no-files-found: error
# windows:
# if: false
# runs-on: windows-latest
# strategy:
# matrix:
# target: [x64, x86]
# steps:
# - uses: actions/checkout@v4
# - name: Setup Python
# uses: actions/setup-python@v4
# with:
# python-version: '3.10'
# architecture: ${{ matrix.target }}
# - name: Build wheels
# uses: PyO3/maturin-action@v1
# with:
# working-directory: src/pypgstac
# target: ${{ matrix.target }}
# args: --release --out /home/runner/work/pgstac/pgstac/dist
# sccache: 'true'
# - name: Upload wheels
# uses: actions/upload-artifact@v4
# with:
# name: win-wheels-${{ matrix.target }}
# path: /home/runner/work/pgstac/pgstac/dist/*
# if-no-files-found: error
# macos:
# if: false
# runs-on: macos-latest
# strategy:
# matrix:
# target: [x86_64, aarch64]
# steps:
# - uses: actions/checkout@v4
# - name: Build wheels
# uses: PyO3/maturin-action@v1
# with:
# working-directory: src/pypgstac
# target: ${{ matrix.target }}
# args: --release --out /tmp/dist
# sccache: 'true'
# - name: Upload wheels
# uses: actions/upload-artifact@v4
# with:
# name: mac-wheels-${{ matrix.target }}
# path: /tmp/dist/*
# if-no-files-found: error
# sdist:
# if: false
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - name: Build sdist
# uses: PyO3/maturin-action@v1
# with:
# working-directory: src/pypgstac
# command: sdist
# args: --out /home/runner/work/pgstac/pgstac/dist
# - name: Upload sdist
# uses: actions/upload-artifact@v4
# with:
# name: source-wheels
# path: /home/runner/work/pgstac/pgstac/dist/*
# if-no-files-found: error
# test:
# name: test
# needs: [buildpg, linux_x86_64]
# runs-on: ubuntu-latest
# container:
# env:
# PGHOST: localhost
# UV_FROZEN: true
# UV_FIND_LINKS: /tmp/wheels
# UV_PROJECT_ENVIRONMENT: /home/runner/work/pgstac/pgstac/src/pypgstac/.venv
# VIRTUAL_ENVIRONMENT: /home/runner/work/pgstac/pgstac/src/pypgstac/.venv
# services:
# postgres:
# image: ghcr.io/stac-utils/pgstac-postgres:latest
# env:
# POSTGRES_PASSWORD: postgres
# POSTGRES_USER: postgres
# POSTGRES_DATABASE: postgres
# options: >-
# --health-cmd pg_isready
# --health-interval 10s
# --health-timeout 5s
# --health-retries 5
# steps:
# - uses: actions/checkout@v4
# - name: Setup UV
# uses: astral-sh/setup-uv@v3
# with:
# enable-cache: true
# - name: Get Wheel
# uses: actions/download-artifact@v4
# with:
# name: wheels-x86_64
# path: /tmp/wheels
# - name: Install pypgstac
# run: |
# cd /home/runner/work/pgstac/pgstac/src/pypgstac
# uv venv
# source $UV_PROJECT_ENVIRONMENT/bin/activate
# uv pip install psycopg[binary] psycopg-pool
# uv sync --frozen --no-install-project --extra test --extra dev
# uv pip install --offline --find-links /tmp/wheels pypgstac
# - name: Run tests
# run: |
# cd /home/runner/work/pgstac/pgstac/src/pypgstac
# source $UV_PROJECT_ENVIRONMENT/bin/activate
# $SCRIPTS/test