mirror of
https://github.com/boostorg/website-v2.git
synced 2026-01-19 04:42:17 +00:00
130 lines
3.4 KiB
YAML
130 lines
3.4 KiB
YAML
name: CI
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches: develop
|
|
|
|
env:
|
|
DOCKER_BUILDKIT: "1"
|
|
DOCKER_IMAGE: "registry.revsys.com/boost"
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
|
|
services:
|
|
postgres:
|
|
image: postgres:12
|
|
env:
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_PASSWORD: postgres
|
|
POSTGRES_DB: postgres
|
|
ports: ["5432:5432"]
|
|
# options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
|
|
|
|
redis:
|
|
image: redis
|
|
ports:
|
|
- 6379:6379
|
|
|
|
steps:
|
|
- name: Git - Get Sources
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Set up Python 3.11
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: 3.11
|
|
|
|
- uses: actions/cache@v4
|
|
with:
|
|
path: ~/.cache/pip
|
|
key: ${{ runner.os }}-pip-${{ hashFiles('**/base.txt') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-pip-
|
|
${{ runner.os }}-
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
python -m pip install --upgrade uv
|
|
uv pip install -r requirements.txt --system
|
|
sudo apt-get install -y ruby ruby-dev build-essential
|
|
sudo gem install asciidoctor
|
|
if: steps.cache.outputs.cache-hit != 'true'
|
|
|
|
- name: Test with pytest
|
|
env:
|
|
DATABASE_URL: "postgres://postgres:postgres@localhost:${{ job.services.postgres.ports[5432] }}/postgres"
|
|
SECRET_KEY: "for-testing-only"
|
|
REDIS_HOST: "localhost"
|
|
CI: "true"
|
|
run: |
|
|
python -m pytest
|
|
|
|
- name: Lints with pre-commit
|
|
run: |
|
|
pre-commit run -a
|
|
|
|
build:
|
|
needs: [test]
|
|
name: Build and Publish Docker image
|
|
runs-on: ubuntu-latest
|
|
if: github.event_name == 'push' && github.ref == 'refs/heads/develop' && github.repository == 'cppalliance/temp-site'
|
|
|
|
steps:
|
|
- name: Git - Get Sources
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Fetch Git Tags
|
|
run: |
|
|
git fetch --depth=1 origin +refs/tags/*:refs/tags/* || true
|
|
|
|
- name: Set up Python 3.11
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: 3.11
|
|
|
|
- name: Install Python dependencies
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
python -m pip install vinnie
|
|
|
|
- name: Bump and Tag our version
|
|
run: |
|
|
git config --local user.email "action@github.com"
|
|
git config --local user.name "GitHub Action"
|
|
vinnie patch
|
|
export VINNIE_VERSION=`vinnie version`
|
|
git push --tags
|
|
|
|
- name: Login to REVSYS Container Registry
|
|
uses: docker/login-action@v2
|
|
with:
|
|
registry: registry.revsys.com
|
|
username: boost
|
|
password: ${{ secrets.REVSYS_DOCKER_REGISTRY_PASSWORD }}
|
|
|
|
- name: Build Docker image
|
|
run: |
|
|
TAG=`vinnie version`
|
|
|
|
docker build --file ./docker/Dockerfile \
|
|
--build-arg TAG=${TAG} \
|
|
--cache-from=${DOCKER_IMAGE}:latest \
|
|
--tag ${DOCKER_IMAGE} .
|
|
|
|
- name: Docker - Tag and Push
|
|
run: |
|
|
TAG=`vinnie version`
|
|
|
|
docker tag ${DOCKER_IMAGE} ${DOCKER_IMAGE}:latest
|
|
docker tag ${DOCKER_IMAGE} ${DOCKER_IMAGE}:${TAG}
|
|
|
|
docker push ${DOCKER_IMAGE}:latest
|
|
docker push ${DOCKER_IMAGE}:${TAG}
|