fix ci #39
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: 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 |