File size: 2,281 Bytes
5ab3eb4
 
 
 
 
 
 
 
 
 
 
e7941a7
5ab3eb4
 
 
371f013
 
 
 
7eb6015
bedf085
 
5ab3eb4
 
3a1fd74
f2140e8
e5c925e
f2140e8
 
 
 
 
e5c925e
f2140e8
 
 
 
 
5ab3eb4
 
87f8696
5ab3eb4
b4f3cd2
5ab3eb4
 
f2140e8
5ab3eb4
 
 
 
 
 
 
 
 
c44cb5d
5ab3eb4
 
 
e75230b
5ab3eb4
6b201e4
5ab3eb4
 
371f013
5ab3eb4
 
704d0c6
5fb5267
 
371f013
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
name: Deploy Docker

on:
  schedule:
    - cron: "0 10 * * *"
  push:
    branches:
      - "**"
    tags:
      - "v*.*.*"
  workflow_dispatch:


jobs:
  docker:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest]
        arch: [linux/amd64]
        python-version: [3.12.3]
        julia-version: [1.10.3]
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Login to Docker Hub
        uses: docker/login-action@v3
        if: github.event_name != 'pull_request'
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}
      - name: Login to GitHub registry
        uses: docker/login-action@v3
        if: github.event_name != 'pull_request'
        with:
          registry: ghcr.io
          username: ${{ github.repository_owner }}
          password: ${{ secrets.GITHUB_TOKEN }}
      - name: Docker meta
        id: meta
        uses: docker/metadata-action@v5
        with:
          #  List of Docker images to use as base name for tags
          images: |
            mcranmer/pysr
            ghcr.io/${{ github.repository }}
          # generate Docker tags based on the following events/attributes
          tags: |
            type=schedule
            type=ref,event=branch
            type=ref,event=pr
            type=semver,pattern={{version}}
            type=semver,pattern={{major}}.{{minor}}
            type=semver,pattern={{major}}
            type=sha
            type=raw,value=latest,enable={{is_default_branch}}
      - name: Set up QEMU
        uses: docker/setup-qemu-action@v2
      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3
      - name: Build and push
        uses: docker/build-push-action@v5
        with:
          context: .
          platforms: ${{ matrix.arch }}
          push: ${{ github.event_name != 'pull_request' }}
          tags: ${{ steps.meta.outputs.tags }}
          labels: ${{ steps.meta.outputs.labels }}
          cache-from: type=registry,ref=mcranmer/pysr:buildcache
          cache-to: type=registry,ref=mcranmer/pysr:buildcache,mode=max
          build-args: |
            PYVERSION=${{ matrix.python-version }}
            JLVERSION=${{ matrix.julia-version }}