Skip to content

build: 将 noneflow 和 nonetest 的 Dockerfile 统一存放在 docker 文件夹下 #1338

build: 将 noneflow 和 nonetest 的 Dockerfile 统一存放在 docker 文件夹下

build: 将 noneflow 和 nonetest 的 Dockerfile 统一存放在 docker 文件夹下 #1338

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
release:
types: [published]
jobs:
test:
name: Test
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install the latest version of uv
uses: astral-sh/setup-uv@v4
with:
enable-cache: true
- name: Run tests
run: uv run poe test
- name: Upload test results to Codecov
if: ${{ !cancelled() }}
uses: codecov/test-results-action@v1
with:
token: ${{ secrets.CODECOV_TOKEN }}
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
noneflow-docker:
name: NoneFlow Docker
runs-on: ubuntu-latest
needs: test
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Docker
uses: docker/setup-buildx-action@v3
- name: Login to Github Container Registry
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Generate Tags
uses: docker/metadata-action@v5
id: metadata
with:
images: ghcr.io/nonebot/noneflow
tags: |
type=semver,pattern={{version}}
type=ref,event=branch
- name: Cache buildkit
uses: actions/cache@v4
id: cache
with:
path: |
var-cache-apt
var-lib-apt
root-cache-uv
key: cache-${{ hashFiles('docker/noneflow.dockerfile') }}
- name: Inject cache into docker
uses: reproducible-containers/[email protected]
with:
cache-map: |
{
"var-cache-apt": "/var/cache/apt",
"var-lib-apt": "/var/lib/apt",
"root-cache-uv": "/root/.cache/uv"
}
skip-extraction: ${{ steps.cache.outputs.cache-hit }}
- name: Build and Publish
uses: docker/build-push-action@v6
with:
context: .
file: ./docker/noneflow.dockerfile
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.metadata.outputs.tags }}
labels: ${{ steps.metadata.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
nonetest-docker:
name: NoneTest Docker
runs-on: ubuntu-latest
needs: test
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Docker
uses: docker/setup-buildx-action@v3
- name: Login to Github Container Registry
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Generate Tags
uses: docker/metadata-action@v5
id: metadata
with:
images: ghcr.io/nonebot/nonetest
tags: |
type=semver,pattern={{version}}
type=ref,event=branch
- name: Cache buildkit
uses: actions/cache@v4
id: cache
with:
path: |
var-cache-apt
var-lib-apt
root-cache-uv
key: cache-${{ hashFiles('docker/nonetest.dockerfile') }}
- name: Inject cache into docker
uses: reproducible-containers/[email protected]
with:
cache-map: |
{
"var-cache-apt": "/var/cache/apt",
"var-lib-apt": "/var/lib/apt",
"root-cache-uv": "/root/.cache/uv"
}
skip-extraction: ${{ steps.cache.outputs.cache-hit }}
- name: Build and Publish
uses: docker/build-push-action@v6
with:
context: .
file: ./docker/nonetest.dockerfile
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.metadata.outputs.tags }}
labels: ${{ steps.metadata.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max