kopia lustrzana https://github.com/projecthorus/chasemapper
Cache wheels
rodzic
0a75f8ad21
commit
f21d19b7d8
|
@ -17,11 +17,25 @@ jobs:
|
||||||
matrix:
|
matrix:
|
||||||
platform: [linux/amd64, linux/386, linux/arm64, linux/arm/v6, linux/arm/v7]
|
platform: [linux/amd64, linux/386, linux/arm64, linux/arm/v6, linux/arm/v7]
|
||||||
steps:
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Declare platform
|
- name: Declare platform
|
||||||
run: |
|
run: |
|
||||||
platform=${{ matrix.platform }}
|
platform=${{ matrix.platform }}
|
||||||
echo "PLATFORM=${platform//\//-}" >> $GITHUB_ENV
|
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
|
- name: Setup QEMU
|
||||||
uses: docker/setup-qemu-action@v3
|
uses: docker/setup-qemu-action@v3
|
||||||
|
|
||||||
|
@ -41,19 +55,34 @@ jobs:
|
||||||
with:
|
with:
|
||||||
images: ghcr.io/${{ github.repository }}
|
images: ghcr.io/${{ github.repository }}
|
||||||
|
|
||||||
- name: Build images and push by digest
|
- name: Build stage
|
||||||
id: build
|
id: build
|
||||||
uses: docker/build-push-action@v6
|
uses: docker/build-push-action@v6
|
||||||
with:
|
with:
|
||||||
|
context: .
|
||||||
platforms: ${{ matrix.platform }}
|
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 }}
|
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' }}
|
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
|
- name: Export digest
|
||||||
if: ${{ github.event_name != 'pull_request' }}
|
if: ${{ github.event_name != 'pull_request' }}
|
||||||
run: |
|
run: |
|
||||||
mkdir -p /tmp/digests
|
mkdir -p /tmp/digests
|
||||||
digest="${{ steps.build.outputs.digest }}"
|
digest="${{ steps.final.outputs.digest }}"
|
||||||
touch "/tmp/digests/${digest#sha256:}"
|
touch "/tmp/digests/${digest#sha256:}"
|
||||||
|
|
||||||
- name: Upload digest
|
- name: Upload digest
|
||||||
|
@ -65,6 +94,11 @@ jobs:
|
||||||
if-no-files-found: error
|
if-no-files-found: error
|
||||||
retention-days: 1
|
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:
|
merge:
|
||||||
name: Publish multi-platform image
|
name: Publish multi-platform image
|
||||||
if: ${{ github.event_name != 'pull_request' }}
|
if: ${{ github.event_name != 'pull_request' }}
|
||||||
|
|
10
Dockerfile
10
Dockerfile
|
@ -12,12 +12,18 @@ RUN apt-get update && \
|
||||||
libatlas-base-dev && \
|
libatlas-base-dev && \
|
||||||
rm -rf /var/lib/apt/lists/*
|
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 in requirements.txt.
|
||||||
COPY requirements.txt /root/chasemapper/requirements.txt
|
COPY requirements.txt /root/chasemapper/requirements.txt
|
||||||
|
|
||||||
# Install Python packages.
|
# Install Python packages.
|
||||||
RUN pip3 --no-cache-dir install --user --no-warn-script-location \
|
RUN pip3 install --user --break-system-packages --no-warn-script-location \
|
||||||
--ignore-installed -r /root/chasemapper/requirements.txt
|
--ignore-installed -r /root/chasemapper/requirements.txt && exit 1
|
||||||
|
|
||||||
# Copy in chasemapper.
|
# Copy in chasemapper.
|
||||||
COPY . /root/chasemapper
|
COPY . /root/chasemapper
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
--no-binary eccodes
|
eccodes
|
||||||
cusfpredict
|
cusfpredict
|
||||||
flask
|
flask
|
||||||
flask-socketio
|
flask-socketio
|
||||||
|
|
Ładowanie…
Reference in New Issue