From 7d99ed12fe8ab42dfe03770b69a4bc1bdb7f9a2c Mon Sep 17 00:00:00 2001 From: Wen Wei Tseng Date: Wed, 15 Nov 2023 10:38:07 +0800 Subject: [PATCH] no dockerfile --- .github/dependabot.yml | 14 ------ .github/workflows/ci.yml | 61 +++++++++++++++------------ .github/workflows/update-manifest.yml | 19 +++------ env.Dockerfile | 28 ------------ conda.yml => environment.yml | 4 ++ requirements.txt | 0 6 files changed, 44 insertions(+), 82 deletions(-) delete mode 100644 env.Dockerfile rename conda.yml => environment.yml (55%) delete mode 100644 requirements.txt diff --git a/.github/dependabot.yml b/.github/dependabot.yml index d88ba24b..df3f89d6 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,12 +1,5 @@ version: 2 updates: - - package-ecosystem: pip - directory: "/" - open-pull-requests-limit: 1 - schedule: - interval: daily - labels: - - automerge - package-ecosystem: github-actions directory: "/" open-pull-requests-limit: 1 @@ -14,10 +7,3 @@ updates: interval: daily labels: - automerge - - package-ecosystem: docker - directory: "/" - open-pull-requests-limit: 1 - schedule: - interval: daily - labels: - - automerge diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cb19cad1..5dde5f07 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,46 +13,55 @@ concurrency: env: NPROC: '2' # Number of Julia processes to run the notebooks + CACHE_NUM: '1' + JULIA_CPU_TARGET: 'generic;haswell,clone_all' + JULIA_NUM_THREADS: 'auto' + JULIA_CONDAPKG_BACKEND: 'Current' + JULIA_CI: 'true' jobs: CI: runs-on: ubuntu-latest - permissions: - packages: write steps: - name: Checkout repository uses: actions/checkout@v4 - - name: Login to Docker Hub - uses: docker/login-action@v3 + - name: Read Julia version + uses: SebRollen/toml-action@v1.0.2 + id: read_toml with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ github.token }} - - name: Get docker image hash - id: img - run: echo "hash=${{ hashFiles('requirements.txt', 'Project.toml', 'Manifest.toml', 'src/**', 'env.Dockerfile') }}" >> "$GITHUB_OUTPUT" - - name: Build Docker container - env: - IMG: ghcr.io/${{ github.repository }}:${{ steps.img.outputs.hash }} + file: 'Manifest.toml' + field: 'julia_version' + - name: Install Julia using jill.sh run: | - docker manifest inspect ${IMG} && exit 0 - docker build -f env.Dockerfile -t ${IMG} . - docker push ${IMG} - - name: Run Literate notebooks - env: - IMG: ghcr.io/${{ github.repository }}:${{ steps.img.outputs.hash }} - run: > - docker run --rm - -w /tmp -v ${{ github.workspace }}:/tmp - -e JULIA_PROJECT=@. - ${IMG} - julia --color=yes -p ${{ env.NPROC }} literate.jl + wget -O /tmp/jill.sh https://raw.githubusercontent.com/abelsiqueira/jill/main/jill.sh + bash /tmp/jill.sh --version ${{ steps.read_toml.outputs.value }} -y + echo "$HOME/.local/bin" >> $GITHUB_PATH + - name: Cache Julia deps + uses: actions/cache@v3 + with: + path: | + ~/.julia + !~/.julia/registries + key: ${{ runner.os }}-julia-${{ env.CACHE_NUM }}-${{ hashFiles('src/**','Project.toml', 'Manifest.toml')}} + restore-keys: | + ${{ runner.os }}-julia-${{ env.CACHE_NUM }}- - name: Setup micromamba uses: mamba-org/setup-micromamba@v1 with: - environment-file: conda.yml + environment-file: environment.yml cache-environment: true post-cleanup: all + - name: Install Julia deps + shell: micromamba-shell {0} + run: | + julia --color=yes -e 'using Pkg; Pkg.add(["PrettyTables", "Literate"])' + julia --project=@. --color=yes -e 'using Pkg, Dates; Pkg.instantiate(); Pkg.gc(collect_delay=Day(1))' + - name: Run program + shell: micromamba-shell {0} + env: + JULIA_PROJECT: '@.' + GKSwstype: '100' + run: julia --color=yes -p ${{ env.NPROC }} literate.jl - name: Build website shell: micromamba-shell {0} run: jupyter-book build docs/ diff --git a/.github/workflows/update-manifest.yml b/.github/workflows/update-manifest.yml index 4e1e2310..45e51a62 100644 --- a/.github/workflows/update-manifest.yml +++ b/.github/workflows/update-manifest.yml @@ -16,7 +16,6 @@ concurrency: env: APP_ID: '189113' # https://github.com/apps/wen-wei-s-pr-bot - IMG_NAME: 'app:test' jobs: update-manifest: @@ -27,20 +26,12 @@ jobs: steps: - name: Checkout uses: actions/checkout@v4 - - name: Build and load docker image - uses: docker/build-push-action@v5 - with: - context: . - file: 'env.Dockerfile' - tags: ${{ env.IMG_NAME }} - load: true - target: base + - name: Setup Julia + uses: julia-actions/setup-julia@v1 - name: Update Julia dependencies - run: > - docker run --rm -w /tmp -v ${{ github.workspace }}:/tmp - -e JULIA_PKG_PRECOMPILE_AUTO=0 - ${{ env.IMG_NAME }} - julia --color=yes --project=@. -e 'import Pkg; Pkg.update()' + env: + JULIA_PKG_PRECOMPILE_AUTO: '0' + run: julia --color=yes --project=@. -e 'import Pkg; Pkg.update()' # Authenticate with a custom GitHub APP # https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#authenticating-with-github-app-generated-tokens - name: Generate token for PR diff --git a/env.Dockerfile b/env.Dockerfile deleted file mode 100644 index d6653ed3..00000000 --- a/env.Dockerfile +++ /dev/null @@ -1,28 +0,0 @@ -FROM julia:1.9.3 as julia -FROM python:3.12.0-slim as base - -# Julia config -ENV JULIA_CI 'true' -ENV JULIA_NUM_THREADS 'auto' -# Let PythonCall use built-in python -ENV JULIA_CONDAPKG_BACKEND 'Null' -# Simple output for GR -ENV GKSwstype '100' -ENV JULIA_CPU_TARGET 'generic;haswell,clone_all' -ENV JULIA_PATH '/usr/local/julia/' -ENV JULIA_DEPOT_PATH '/srv/juliapkg/' -ENV PATH ${JULIA_PATH}/bin:${PATH} -COPY --from=julia ${JULIA_PATH} ${JULIA_PATH} - -FROM base - -WORKDIR /work - -# Python dependencies. e.g. matplotlib -COPY requirements.txt ./ -RUN pip install --no-cache-dir nbconvert -r requirements.txt - -# Julia environment -COPY Project.toml Manifest.toml ./ -COPY src/ src -RUN julia --color=yes -e 'using Pkg; Pkg.add(["PrettyTables", "Literate"]); Pkg.activate("."); Pkg.instantiate(); Pkg.precompile()' diff --git a/conda.yml b/environment.yml similarity index 55% rename from conda.yml rename to environment.yml index 8a3e7bc8..3c257969 100644 --- a/conda.yml +++ b/environment.yml @@ -1,6 +1,10 @@ name: ci dependencies: + - python>=3.11 # Jupyter Book - jupyter-book - docutils>=0.17.1,<0.18|>=0.20 + # PythonPlot + # - matplotlib + # - libstdcxx-ng<13.0 diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index e69de29b..00000000