Skip to content

perf: 尝试调试缓存 #16

perf: 尝试调试缓存

perf: 尝试调试缓存 #16

Workflow file for this run

name: Build
on:
push:
# Sequence of patterns matched against refs/tags
tags:
- '*' # Push events to matching v*, i.e. v1.0, v20.15.10
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
component: [core, koko, lion, kael, chen, magnus, web]
steps:
- uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3
- uses: actions/setup-python@v4
if: matrix.component == 'core'
with:
python-version: 3.11
- uses: abatilo/actions-poetry@v2
if: matrix.component == 'core'
- name: Get Version
run: |
echo "version=$(basename ${GITHUB_REF})" >> $GITHUB_ENV
- name: Generate poetry.lock
if: matrix.component == 'core'
run: |
wget https://github.com/jumpserver/jumpserver/raw/${{ env.version }}/pyproject.toml
sed -i 's@^cython =@# cython =@g' pyproject.toml
sed -i 's@^certifi =@# certifi =@g' pyproject.toml
sed -i 's@^cffi =@# cffi =@g' pyproject.toml
sed -i 's@^idna =@# idna =@g' pyproject.toml
sed -i 's@^urllib3 =@# urllib3 =@g' pyproject.toml
poetry config virtualenvs.create false
poetry source add --priority=default PyPI
poetry lock --no-update
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_TOKEN }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and Push Image
uses: docker/build-push-action@v5
with:
context: .
file: ${{ matrix.component }}/Dockerfile
platforms: linux/amd64,linux/arm64,linux/ppc64le,linux/s390x
push: true
tags: |
${{ github.repository_owner }}/jms_${{ matrix.component }}:${{ env.version }}
${{ github.repository_owner }}/jms_${{ matrix.component }}:latest
ghcr.io/${{ github.repository_owner }}/jms_${{ matrix.component }}:${{ env.version }}
ghcr.io/${{ github.repository_owner }}/jms_${{ matrix.component }}:latest
cache-from: type=gha
cache-to: type=gha,mode=max
allinone:
needs: build
runs-on: ubuntu-latest
strategy:
matrix:
component: [all]
steps:
- uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3
- name: Get Version
run: |
echo "version=$(basename ${GITHUB_REF})" >> $GITHUB_ENV
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_TOKEN }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and Push Image
uses: docker/build-push-action@v5
with:
context: ./allinone
file: ./allinone/Dockerfile
platforms: linux/amd64,linux/arm64,linux/ppc64le,linux/s390x
push: true
tags: |
${{ github.repository_owner }}/jms_${{ matrix.component }}:${{ env.version }}
${{ github.repository_owner }}/jms_${{ matrix.component }}:latest
ghcr.io/${{ github.repository_owner }}/jms_${{ matrix.component }}:${{ env.version }}
ghcr.io/${{ github.repository_owner }}/jms_${{ matrix.component }}:latest
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ env.version }}
release_name: Release ${{ env.version }}
draft: false
prerelease: false