17bc0ed680
Self-hosted Gitea runner has flaky/blocked access to github.com, causing actions/checkout and actions/setup-go to time out intermittently across all jobs. Replace them with: - manual git checkout against $GITHUB_SERVER_URL (the Gitea host, reachable from job containers) - Go installed from mirrors.aliyun.com Python job stays on the python3.12-nodejs20 container (fixes the original PEP 660 editable-install failure). No more github.com network dependency. Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
122 lines
4.1 KiB
YAML
122 lines
4.1 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
pull_request:
|
|
|
|
env:
|
|
GO_VERSION: "1.23.12"
|
|
GOPROXY: "https://goproxy.cn,direct"
|
|
|
|
jobs:
|
|
go:
|
|
name: Go (api)
|
|
runs-on: ubuntu-latest
|
|
defaults:
|
|
run:
|
|
working-directory: api
|
|
services:
|
|
postgres:
|
|
image: postgres:16-alpine
|
|
env:
|
|
POSTGRES_USER: opengoods
|
|
POSTGRES_PASSWORD: opengoods
|
|
POSTGRES_DB: opengoods
|
|
options: >-
|
|
--health-cmd "pg_isready -U opengoods"
|
|
--health-interval 5s --health-timeout 5s --health-retries 10
|
|
env:
|
|
OPENGOODS_DATABASE_URL: postgres://opengoods:opengoods@postgres:5432/opengoods?sslmode=disable
|
|
steps:
|
|
- name: Checkout
|
|
working-directory: ${{ github.workspace }}
|
|
run: |
|
|
git config --global --add safe.directory '*'
|
|
git init -q .
|
|
git remote add origin "${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git"
|
|
git -c protocol.version=2 fetch -q --no-tags --depth 1 origin "${GITHUB_REF}"
|
|
git checkout -q --force FETCH_HEAD
|
|
- name: Setup Go
|
|
working-directory: ${{ github.workspace }}
|
|
run: |
|
|
curl -fsSL -o /tmp/go.tgz "https://mirrors.aliyun.com/golang/go${GO_VERSION}.linux-amd64.tar.gz"
|
|
rm -rf /usr/local/go
|
|
tar -C /usr/local -xzf /tmp/go.tgz
|
|
echo "/usr/local/go/bin" >> "$GITHUB_PATH"
|
|
echo "$HOME/go/bin" >> "$GITHUB_PATH"
|
|
- name: Apply migrations
|
|
working-directory: .
|
|
run: |
|
|
go install -tags 'postgres' github.com/golang-migrate/migrate/v4/cmd/migrate@v4.18.1
|
|
migrate -path migrations -database "$OPENGOODS_DATABASE_URL" up
|
|
- name: Verify gofmt
|
|
run: test -z "$(gofmt -l .)"
|
|
- run: go vet ./...
|
|
- run: go build ./...
|
|
- run: go test ./...
|
|
|
|
python:
|
|
name: Python (ingestion)
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: nikolaik/python-nodejs:python3.12-nodejs20
|
|
defaults:
|
|
run:
|
|
working-directory: ingestion
|
|
steps:
|
|
- name: Checkout
|
|
working-directory: ${{ github.workspace }}
|
|
run: |
|
|
git config --global --add safe.directory '*'
|
|
git init -q .
|
|
git remote add origin "${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git"
|
|
git -c protocol.version=2 fetch -q --no-tags --depth 1 origin "${GITHUB_REF}"
|
|
git checkout -q --force FETCH_HEAD
|
|
- name: Install
|
|
run: pip install -e ".[dev]"
|
|
- name: Ruff lint
|
|
run: ruff check .
|
|
- name: Ruff format check
|
|
run: ruff format --check .
|
|
- name: Pytest
|
|
run: pytest -q
|
|
|
|
migrations:
|
|
name: Migrations (postgres)
|
|
runs-on: ubuntu-latest
|
|
services:
|
|
postgres:
|
|
image: postgres:16-alpine
|
|
env:
|
|
POSTGRES_USER: opengoods
|
|
POSTGRES_PASSWORD: opengoods
|
|
POSTGRES_DB: opengoods
|
|
options: >-
|
|
--health-cmd "pg_isready -U opengoods"
|
|
--health-interval 5s --health-timeout 5s --health-retries 10
|
|
env:
|
|
DBURL: postgres://opengoods:opengoods@postgres:5432/opengoods?sslmode=disable
|
|
steps:
|
|
- name: Checkout
|
|
working-directory: ${{ github.workspace }}
|
|
run: |
|
|
git config --global --add safe.directory '*'
|
|
git init -q .
|
|
git remote add origin "${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git"
|
|
git -c protocol.version=2 fetch -q --no-tags --depth 1 origin "${GITHUB_REF}"
|
|
git checkout -q --force FETCH_HEAD
|
|
- name: Setup Go
|
|
run: |
|
|
curl -fsSL -o /tmp/go.tgz "https://mirrors.aliyun.com/golang/go${GO_VERSION}.linux-amd64.tar.gz"
|
|
rm -rf /usr/local/go
|
|
tar -C /usr/local -xzf /tmp/go.tgz
|
|
echo "/usr/local/go/bin" >> "$GITHUB_PATH"
|
|
echo "$HOME/go/bin" >> "$GITHUB_PATH"
|
|
- name: Install golang-migrate
|
|
run: go install -tags 'postgres' github.com/golang-migrate/migrate/v4/cmd/migrate@v4.18.1
|
|
- name: Migrate up
|
|
run: migrate -path migrations -database "$DBURL" up
|
|
- name: Migrate down (reversibility)
|
|
run: migrate -path migrations -database "$DBURL" down -all
|