kopia lustrzana https://github.com/projecthorus/chasemapper
Cache wheels
rodzic
0a75f8ad21
commit
f21d19b7d8
|
@ -17,11 +17,25 @@ jobs:
|
|||
matrix:
|
||||
platform: [linux/amd64, linux/386, linux/arm64, linux/arm/v6, linux/arm/v7]
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Declare platform
|
||||
run: |
|
||||
platform=${{ matrix.platform }}
|
||||
echo "PLATFORM=${platform//\//-}" >> $GITHUB_ENV
|
||||
|
||||
- name: Cache wheels
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: ${{ github.workspace }}/wheels
|
||||
key: wheels-${{ env.PLATFORM }}-${{ github.run_id }}
|
||||
restore-keys: |
|
||||
wheels-${{ env.PLATFORM }}-
|
||||
|
||||
- name: List wheels
|
||||
run: ls -lR ${{ github.workspace }}/wheels || true
|
||||
|
||||
- name: Setup QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
|
||||
|
@ -41,19 +55,34 @@ jobs:
|
|||
with:
|
||||
images: ghcr.io/${{ github.repository }}
|
||||
|
||||
- name: Build images and push by digest
|
||||
- name: Build stage
|
||||
id: build
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
context: .
|
||||
platforms: ${{ matrix.platform }}
|
||||
provenance: false
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
outputs: type=local,dest=/tmp/build-output
|
||||
cache-to: type=local,dest=/tmp/build-cache,mode=max
|
||||
target: build
|
||||
|
||||
- name: Final stage and push by digest
|
||||
id: final
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
context: .
|
||||
platforms: ${{ matrix.platform }}
|
||||
provenance: false
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
outputs: type=image,name=ghcr.io/${{ github.repository }},push-by-digest=true,name-canonical=true,push=${{ github.event_name != 'pull_request' && 'true' || 'false' }}
|
||||
cache-from: type=local,src=/tmp/build-cache
|
||||
|
||||
- name: Export digest
|
||||
if: ${{ github.event_name != 'pull_request' }}
|
||||
run: |
|
||||
mkdir -p /tmp/digests
|
||||
digest="${{ steps.build.outputs.digest }}"
|
||||
digest="${{ steps.final.outputs.digest }}"
|
||||
touch "/tmp/digests/${digest#sha256:}"
|
||||
|
||||
- name: Upload digest
|
||||
|
@ -65,6 +94,11 @@ jobs:
|
|||
if-no-files-found: error
|
||||
retention-days: 1
|
||||
|
||||
- name: Move and list wheels
|
||||
run: |
|
||||
mv -f /tmp/build-output/root/.cache/pip/wheels ${{ github.workspace }}/ || true
|
||||
ls -lR ${{ github.workspace }}/wheels || true
|
||||
|
||||
merge:
|
||||
name: Publish multi-platform image
|
||||
if: ${{ github.event_name != 'pull_request' }}
|
||||
|
|
10
Dockerfile
10
Dockerfile
|
@ -12,12 +12,18 @@ RUN apt-get update && \
|
|||
libatlas-base-dev && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Copy in existing wheels.
|
||||
COPY wheel[s]/ /root/.cache/pip/wheels/
|
||||
|
||||
# No wheels might exist.
|
||||
RUN mkdir -p /root/.cache/pip/wheels/
|
||||
|
||||
# Copy in requirements.txt.
|
||||
COPY requirements.txt /root/chasemapper/requirements.txt
|
||||
|
||||
# Install Python packages.
|
||||
RUN pip3 --no-cache-dir install --user --no-warn-script-location \
|
||||
--ignore-installed -r /root/chasemapper/requirements.txt
|
||||
RUN pip3 install --user --break-system-packages --no-warn-script-location \
|
||||
--ignore-installed -r /root/chasemapper/requirements.txt && exit 1
|
||||
|
||||
# Copy in chasemapper.
|
||||
COPY . /root/chasemapper
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
--no-binary eccodes
|
||||
eccodes
|
||||
cusfpredict
|
||||
flask
|
||||
flask-socketio
|
||||
|
|
Ładowanie…
Reference in New Issue