diff --git a/.github/labeler.yml b/.github/labeler.yml index 4a2d38bfc1..c09d9d8c6e 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -1,63 +1,104 @@ repo: - - ./* - + - changed-files: + - any-glob-to-any-file: + - './*' + examples: - - examples/**/* + - changed-files: + - any-glob-to-any-file: + - 'examples/**/*' tests: - - arc/**/*Tests.py + - changed-files: + - any-glob-to-any-file: + - 'arc/**/*Tests.py' 'Module: Conformers': - - arc/species/conformers.py + - changed-files: + - any-glob-to-any-file: + - 'arc/species/conformers.py' 'Module: Mapping': - - arc/mapping/* + - changed-files: + - any-glob-to-any-file: + - 'arc/mapping/*' 'Module: Converter': - - arc/species/converter.py + - changed-files: + - any-glob-to-any-file: + - 'arc/species/converter.py' 'Module: Job': - - arc/job/job.py + - changed-files: + - any-glob-to-any-file: + - 'arc/job/job.py' 'Module: Local': - - arc/job/local.py + - changed-files: + - any-glob-to-any-file: + - 'arc/job/local.py' 'Module: Main': - - arc/main.py + - changed-files: + - any-glob-to-any-file: + - 'arc/main.py' 'Module: Parser': - - arc/parser.py + - changed-files: + - any-glob-to-any-file: + - 'arc/parser.py' 'Module: Plotter': - - arc/plotter.py + - changed-files: + - any-glob-to-any-file: + - 'arc/plotter.py' 'Module: Processor': - - arc/processor.py + - changed-files: + - any-glob-to-any-file: + - 'arc/processor.py' 'Module: Reaction': - - arc/reaction.py + - changed-files: + - any-glob-to-any-file: + - 'arc/reaction.py' 'Module: rmgdb': - - arc/rmgdb.py + - changed-files: + - any-glob-to-any-file: + - 'arc/rmgdb.py' 'Module: Scheduler': - - arc/scheduler.py + - changed-files: + - any-glob-to-any-file: + - 'arc/scheduler.py' 'Module: Species': - - arc/species/species.py + - changed-files: + - any-glob-to-any-file: + - 'arc/species/species.py' 'Module: SSH': - - arc/job/ssh.py + - changed-files: + - any-glob-to-any-file: + - 'arc/job/ssh.py' 'Module: trsh': - - arc/job/trsh.py + - changed-files: + - any-glob-to-any-file: + - 'arc/job/trsh.py' 'Module: Utils': - - arc/job/utils/**/* + - changed-files: + - any-glob-to-any-file: + - 'arc/job/utils/**/*' 'Module docs': - - arc/docs/**/* + - changed-files: + - any-glob-to-any-file: + - 'arc/docs/**/*' 'Module Functional': - - functional/* - + - changed-files: + - any-glob-to-any-file: + - 'functional/*' diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c5e30f74fd..662fba2926 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,7 +18,7 @@ jobs: steps: - name: Checkout ARC - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: path: ARC diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 1285713662..58e8407669 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -24,7 +24,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v6 - name: Initialize CodeQL uses: github/codeql-action/init@v3 diff --git a/.github/workflows/docker_build.yml b/.github/workflows/docker_build.yml index ae66a06ed5..4aa9d25957 100644 --- a/.github/workflows/docker_build.yml +++ b/.github/workflows/docker_build.yml @@ -6,9 +6,6 @@ on: push: branches: - main - paths: - - "Dockerfile" - - ".github/workflows/docker_build.yml" pull_request: branches: - main @@ -18,6 +15,9 @@ on: types: [opened, synchronize, reopened, ready_for_review] #workflow_dispatch: # Add this line to enable manual trigger +env: + BUILDKIT_PROGRESS: plain + jobs: build: runs-on: ubuntu-latest @@ -34,16 +34,16 @@ jobs: swap-storage: true - name: Checkout - uses: actions/checkout@v5.0.0 + uses: actions/checkout@v6 - name: Set up Buildx - uses: docker/setup-buildx-action@v3.11.1 + uses: docker/setup-buildx-action@v4.0.0 # ----- PR and non-main branch steps ----- # For PRs: Build image but do not push and run smoke tests - name: Build Docker Image (No Push) if: github.event_name == 'pull_request' || (github.event_name == 'push' && github.ref != 'refs/heads/main') - uses: docker/build-push-action@v6.18.0 + uses: docker/build-push-action@v7.0.0 with: context: . file: ./Dockerfile @@ -63,7 +63,7 @@ jobs: # For pushes to main: Build, run smoke tests, and push to Docker Hub - name: Build test stage (main) if: github.event_name == 'push' && github.ref == 'refs/heads/main' - uses: docker/build-push-action@v6.18.0 + uses: docker/build-push-action@v7.0.0 with: context: . file: ./Dockerfile @@ -87,7 +87,7 @@ jobs: - name: Build final and push (main) if: github.event_name == 'push' && github.ref == 'refs/heads/main' - uses: docker/build-push-action@v6.18.0 + uses: docker/build-push-action@v7.0.0 with: context: . file: ./Dockerfile diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index c6bc80e4f2..fd152a6565 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -14,7 +14,7 @@ jobs: steps: # ── clone ARC repo ─────────────────────────────────────────── - name: Checkout ARC - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: repository: ReactionMechanismGenerator/ARC path: ARC diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml index bc1fce176d..b9740e1639 100644 --- a/.github/workflows/labeler.yml +++ b/.github/workflows/labeler.yml @@ -11,6 +11,6 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/labeler@v2 + - uses: actions/labeler@v6 with: repo-token: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/update-cache.yml b/.github/workflows/update-cache.yml index 23e0f40165..5df71c0a97 100644 --- a/.github/workflows/update-cache.yml +++ b/.github/workflows/update-cache.yml @@ -19,12 +19,12 @@ jobs: steps: # ────────── source repo ────────── - name: Checkout ARC - uses: actions/checkout@v4 + uses: actions/checkout@v6 # ────────── AutoTST ────────── - name: Cache AutoTST id: cache-autotst - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: AutoTST key: ${{ runner.os }}-autotst-main @@ -32,7 +32,7 @@ jobs: ${{ runner.os }}-autotst- - name: Checkout AutoTST if: steps.cache-autotst.outputs.cache-hit != 'true' - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: repository: ReactionMechanismGenerator/AutoTST path: AutoTST @@ -42,7 +42,7 @@ jobs: # ────────── TS‑GCN ────────── - name: Cache TS-GCN id: cache-tsgcn - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: TS-GCN key: ${{ runner.os }}-tsgcn-main @@ -50,7 +50,7 @@ jobs: ${{ runner.os }}-tsgcn- - name: Checkout TS-GCN if: steps.cache-tsgcn.outputs.cache-hit != 'true' - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: repository: ReactionMechanismGenerator/TS-GCN path: TS-GCN @@ -60,7 +60,7 @@ jobs: # ────────── KinBot ────────── - name: Cache KinBot id: cache-kinbot - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: KinBot key: ${{ runner.os }}-kinbot-2.0.6 @@ -68,7 +68,7 @@ jobs: ${{ runner.os }}-kinbot- - name: Checkout KinBot 2.0.6 if: steps.cache-kinbot.outputs.cache-hit != 'true' - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: repository: zadorlab/KinBot path: KinBot diff --git a/Dockerfile b/Dockerfile index aade2f6d9b..b99169453c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -35,25 +35,31 @@ RUN wget -qO- https://install.julialang.org | sh -s -- --yes --default-channel 1 # Switch directory to Code and RMG clone WORKDIR /home/mambauser/Code -RUN git clone --branch ${RMG_PY_BRANCH} https://github.com/ReactionMechanismGenerator/RMG-Py.git && \ - git clone --branch ${RMG_DATABASE_BRANCH} https://github.com/ReactionMechanismGenerator/RMG-database.git && \ - git clone --branch ${ARC_BRANCH} https://github.com/ReactionMechanismGenerator/ARC.git - -# Create RMG-Py environment -RUN micromamba create -y -n rmg_env -f /home/mambauser/Code/RMG-Py/environment.yml && \ - micromamba run -n rmg_env micromamba install -y -c conda-forge pyjuliacall conda && \ - micromamba clean --all --yes && \ - micromamba run -n rmg_env make -C /home/mambauser/Code/RMG-Py -j"$(nproc)" && \ - micromamba run -n rmg_env bash -c "\ +RUN git clone --depth 1 --branch ${RMG_PY_BRANCH} https://github.com/ReactionMechanismGenerator/RMG-Py.git && \ + git clone --depth 1 --branch ${RMG_DATABASE_BRANCH} https://github.com/ReactionMechanismGenerator/RMG-database.git && \ + git clone --depth 1 --branch ${ARC_BRANCH} https://github.com/ReactionMechanismGenerator/ARC.git + +# Create RMG-Py environment (split into separate layers for GHA cache) +# Pin python=3.9 to drastically reduce solver search space +RUN micromamba create -y -v -n rmg_env python=3.9 -f /home/mambauser/Code/RMG-Py/environment.yml && \ + micromamba run -n rmg_env micromamba install -y -v -c conda-forge pyjuliacall conda && \ + micromamba clean --all --yes + +RUN micromamba run -n rmg_env make -C /home/mambauser/Code/RMG-Py -j"$(nproc)" + +RUN micromamba run -n rmg_env bash -c "\ cd /home/mambauser/Code/RMG-Py && \ + export RMS_INSTALLER=continuous && \ + export RMS_BRANCH=for_rmg && \ source install_rms.sh \ " WORKDIR /home/mambauser/Code/ARC -RUN micromamba create -y -n arc_env -f environment.yml --channel-priority flexible && \ - micromamba install -y -n arc_env -c conda-forge pytest && \ - micromamba clean --all -f -y && \ - micromamba run -n arc_env bash -euxo pipefail -c \ +RUN micromamba create -y -v -n arc_env python=3.12 -f environment.yml && \ + micromamba install -y -v -n arc_env -c conda-forge pytest && \ + micromamba clean --all -f -y + +RUN micromamba run -n arc_env bash -euxo pipefail -c \ "make compile && bash ./devtools/install_pyrdl.sh" && \ micromamba clean --all --yes