Skip to content

Commit

Permalink
baremetal (#271)
Browse files Browse the repository at this point in the history
  • Loading branch information
sosiristseng authored Nov 10, 2023
1 parent d4ff260 commit 968f21a
Show file tree
Hide file tree
Showing 8 changed files with 71 additions and 182 deletions.
14 changes: 0 additions & 14 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,23 +1,9 @@
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
schedule:
interval: daily
labels:
- automerge
- package-ecosystem: docker
directory: "/"
open-pull-requests-limit: 1
schedule:
interval: daily
labels:
- automerge
150 changes: 56 additions & 94 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,108 +13,70 @@ concurrency:

env:
NPROC: '2' # Number of Julia processes to run the notebooks
JULIA_CPU_TARGET: 'generic;haswell,clone_all'
JULIA_NUM_THREADS: 'auto'
JULIA_CONDAPKG_BACKEND: 'Current'
JULIA_CI: 'true'
GKSwstype: '100'
JULIA_CACHE_NUM: '1'

jobs:
setup:
permissions:
packages: write
CI:
runs-on: ubuntu-latest
outputs:
hash: ${{ steps.hash.outputs.id }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
- name: Setup micromamba
uses: mamba-org/setup-micromamba@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ github.token }}
- name: Get docker image hash
id: hash
run: echo "id=${{ hashFiles('requirements.txt', 'Project.toml', 'Manifest.toml', 'src/**', 'env.Dockerfile') }}" >> "$GITHUB_OUTPUT"
- name: Build and cache Docker container
uses: docker/build-push-action@v5
environment-file: environment.yml
cache-environment: true
post-cleanup: all
- name: Read Julia version
uses: SebRollen/[email protected]
id: read_toml
with:
context: .
file: 'env.Dockerfile'
tags: ghcr.io/${{ github.repository }}:${{ steps.hash.outputs.id }}
push: true
cache-from: type=registry,ref=ghcr.io/${{ github.repository }}:${{ steps.hash.outputs.id }}
cache-to: type=inline

execute:
needs: setup
runs-on: ubuntu-latest
container:
image: ghcr.io/${{ github.repository }}:${{ needs.setup.outputs.hash }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Run program
env:
JULIA_PROJECT: '@.'
run: julia --color=yes -p ${{ env.NPROC }} literate.jl
- name: Upload Results
uses: actions/upload-artifact@v3
with:
name: notebooks
path: docs/
retention-days: 1

render:
needs: execute
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download notebooks
uses: actions/download-artifact@v3
with:
name: notebooks
path: out/
- name: Display structure of downloaded files
run: ls -R
working-directory: out
- name: Copy back built notebooks
run: cp --verbose -rf out/* docs/
- name: Setup micromamba
uses: mamba-org/setup-micromamba@v1
with:
environment-file: jupyterbook.yml
init-shell: bash
cache-environment: true
post-cleanup: all
- name: Build website
shell: micromamba-shell {0}
run: jupyter-book build docs/
- name: Upload pages artifact
if: ${{ github.ref == 'refs/heads/main' }}
uses: actions/upload-pages-artifact@v2
with:
path: docs/_build/html

# CI conclusion for GitHub status check
# Adaped from https://brunoscheufler.com/blog/2022-04-09-the-required-github-status-check-that-wasnt
CI:
needs: render
if: always()
runs-on: ubuntu-latest
steps:
- run: |
if [[ ${{ needs.render.result }} == "success" ]]; then
echo "Tests passed"
exit 0
else
echo "Tests failed"
exit 1
fi
file: 'Manifest.toml'
field: 'julia_version'
- name: Install Julia using jill.sh
run: |
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/artifacts
~/.julia/compiled
~/.julia/packages
~/.julia/environments
~/.julia/scratchspaces
key: ${{ runner.os }}-jill-${{ env.JULIA_CACHE_NUM }}-${{ hashFiles('src/**','Project.toml', 'Manifest.toml')}}
restore-keys: |
${{ runner.os }}-jill-${{ env.JULIA_CACHE_NUM }}-
- 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.precompile(); Pkg.gc(collect_delay=Day(1))'
- name: Run program
shell: micromamba-shell {0}
env:
JULIA_PROJECT: '@.'
run: julia --color=yes -p ${{ env.NPROC }} literate.jl
- name: Build website
shell: micromamba-shell {0}
run: jupyter-book build docs/
- name: Upload pages artifact
if: ${{ github.ref == 'refs/heads/main' }}
uses: actions/upload-pages-artifact@v2
with:
path: docs/_build/html

deploy:
name: Deploy to GitHub pages
needs: render
needs: CI
if: ${{ github.ref == 'refs/heads/main'}}
# Grant GITHUB_TOKEN the permissions required to make a Pages deployment
permissions:
Expand All @@ -125,6 +87,6 @@ jobs:
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v2
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v2
27 changes: 0 additions & 27 deletions .github/workflows/rm-old-image.yml

This file was deleted.

18 changes: 5 additions & 13 deletions .github/workflows/update-manifest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -27,19 +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 -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
Expand Down
27 changes: 0 additions & 27 deletions env.Dockerfile

This file was deleted.

10 changes: 10 additions & 0 deletions environment.yml
Original file line number Diff line number Diff line change
@@ -0,0 +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
7 changes: 0 additions & 7 deletions jupyterbook.yml

This file was deleted.

Empty file removed requirements.txt
Empty file.

0 comments on commit 968f21a

Please sign in to comment.