Conservative Q-Learning (#995) #2134
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
pull_request: | |
branches: | |
- main | |
types: | |
- labeled | |
- opened | |
- edited | |
- reopened | |
- synchronize | |
push: | |
branches: | |
- main | |
tags: "*" | |
workflow_dispatch: | |
jobs: | |
test-RLBase: | |
name: RLBase - Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
version: | |
- "1" | |
os: | |
- ubuntu-latest | |
- macOS-latest | |
# - windows-latest # Reactivate once path issues are figured out | |
arch: | |
- x64 | |
# - arm64 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 100 | |
- uses: julia-actions/setup-julia@v1 | |
with: | |
version: ${{ matrix.version }} | |
arch: ${{ matrix.arch }} | |
- uses: actions/cache@v3 | |
env: | |
cache-name: cache-artifacts | |
with: | |
path: ~/.julia/artifacts | |
key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }} | |
restore-keys: | | |
${{ runner.os }}-test-${{ env.cache-name }}- | |
${{ runner.os }}-test- | |
${{ runner.os }}- | |
- name: Get changed files | |
id: RLBase-changed | |
uses: tj-actions/changed-files@v35 | |
with: | |
files: | | |
src/ReinforcementLearningBase/** | |
- name: Test RLBase | |
if: (steps.RLBase-changed.outputs.any_changed == 'true') || (contains(github.event.pull_request.labels.*.name, 'Integration Test')) | |
run: | | |
julia --color=yes -e ' | |
using Pkg; | |
Pkg.develop(path="src/ReinforcementLearningBase") | |
Pkg.test("ReinforcementLearningBase", coverage=true)' | |
- uses: julia-actions/julia-processcoverage@v1 | |
- uses: codecov/codecov-action@v3 | |
test-RLCore: | |
name: RLCore - Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
version: | |
- "1" | |
os: | |
- ubuntu-latest | |
- macOS-latest | |
# - windows-latest # Reactivate once path issues are figured out | |
arch: | |
- x64 | |
# - arm64 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 100 | |
- uses: julia-actions/setup-julia@v1 | |
with: | |
version: ${{ matrix.version }} | |
arch: ${{ matrix.arch }} | |
- uses: actions/cache@v3 | |
env: | |
cache-name: cache-artifacts | |
with: | |
path: ~/.julia/artifacts | |
key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }} | |
restore-keys: | | |
${{ runner.os }}-test-${{ env.cache-name }}- | |
${{ runner.os }}-test- | |
${{ runner.os }}- | |
- name: Get changed files | |
id: RLCore-changed | |
uses: tj-actions/changed-files@v35 | |
with: | |
files: | | |
src/ReinforcementLearningCore/** | |
src/ReinforcementLearningBase/** | |
- name: Test RLCore | |
if: (steps.RLCore-changed.outputs.any_changed == 'true') || (contains(github.event.pull_request.labels.*.name, 'Integration Test')) | |
run: | | |
julia --color=yes -e ' | |
using Pkg; | |
Pkg.develop(path="src/ReinforcementLearningBase") | |
Pkg.develop(path="src/ReinforcementLearningCore") | |
Pkg.develop(path="src/ReinforcementLearningEnvironments") | |
Pkg.test("ReinforcementLearningCore", coverage=true)' | |
- uses: julia-actions/julia-processcoverage@v1 | |
- uses: codecov/codecov-action@v3 | |
test-RLZoo: | |
name: RLZoo - Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
version: | |
- "1" | |
os: | |
- ubuntu-latest | |
- macOS-latest | |
# - windows-latest # Reactivate once path issues are figured out | |
arch: | |
- x64 | |
# - arm64 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 100 | |
- uses: julia-actions/setup-julia@v1 | |
with: | |
version: ${{ matrix.version }} | |
arch: ${{ matrix.arch }} | |
- uses: actions/cache@v3 | |
env: | |
cache-name: cache-artifacts | |
with: | |
path: ~/.julia/artifacts | |
key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }} | |
restore-keys: | | |
${{ runner.os }}-test-${{ env.cache-name }}- | |
${{ runner.os }}-test- | |
${{ runner.os }}- | |
- name: Get changed files | |
id: RLZoo-changed | |
uses: tj-actions/changed-files@v35 | |
with: | |
files: | | |
src/ReinforcementLearningZoo/** | |
src/ReinforcementLearningCore/** | |
src/ReinforcementLearningBase/** | |
- name: Test RLZoo | |
if: (steps.RLZoo-changed.outputs.any_changed == 'true') || (contains(github.event.pull_request.labels.*.name, 'Integration Test')) | |
run: | | |
julia --color=yes -e ' | |
using Pkg; | |
Pkg.develop(path="src/ReinforcementLearningBase") | |
Pkg.develop(path="src/ReinforcementLearningEnvironments") | |
Pkg.develop(path="src/ReinforcementLearningCore") | |
Pkg.develop(path="src/ReinforcementLearningZoo") | |
Pkg.test("ReinforcementLearningZoo", coverage=true)' | |
- uses: julia-actions/julia-processcoverage@v1 | |
- uses: codecov/codecov-action@v3 | |
test-RLEnvs: | |
name: RLEnvs - Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
version: | |
- "1" | |
os: | |
- ubuntu-latest | |
- macOS-latest | |
# - windows-latest # Reactivate once path issues are figured out | |
arch: | |
- x64 | |
# - arm64 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 100 | |
- uses: julia-actions/setup-julia@v1 | |
with: | |
version: ${{ matrix.version }} | |
arch: ${{ matrix.arch }} | |
- uses: actions/cache@v3 | |
env: | |
cache-name: cache-artifacts | |
with: | |
path: ~/.julia/artifacts | |
key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }} | |
restore-keys: | | |
${{ runner.os }}-test-${{ env.cache-name }}- | |
${{ runner.os }}-test- | |
${{ runner.os }}- | |
- name: Get changed files | |
id: RLEnvironments-changed | |
uses: tj-actions/changed-files@v35 | |
with: | |
files: | | |
src/ReinforcementLearningEnvironments/** | |
src/ReinforcementLearningZoo/** | |
src/ReinforcementLearningCore/** | |
src/ReinforcementLearningBase/** | |
- name: Test RLEnvironments | |
if: (steps.RLEnvironments-changed.outputs.any_changed == 'true') || (contains(github.event.pull_request.labels.*.name, 'Integration Test')) | |
env: | |
PYTHON: "" | |
run: | | |
julia --color=yes -e ' | |
using Pkg; | |
Pkg.develop(path="src/ReinforcementLearningBase") | |
Pkg.develop(path="src/ReinforcementLearningCore") | |
Pkg.develop(path="src/ReinforcementLearningEnvironments") | |
Pkg.test("ReinforcementLearningEnvironments", coverage=true)' | |
- uses: julia-actions/julia-processcoverage@v1 | |
- uses: codecov/codecov-action@v3 | |
test-RLExperiments: | |
name: RLExperiments - Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
version: | |
- "1" | |
os: | |
- ubuntu-latest | |
- macOS-latest | |
# - windows-latest # Reactivate once path issues are figured out | |
arch: | |
- x64 | |
# - arm64 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 100 | |
- uses: julia-actions/setup-julia@v1 | |
with: | |
version: ${{ matrix.version }} | |
arch: ${{ matrix.arch }} | |
- uses: actions/cache@v3 | |
env: | |
cache-name: cache-artifacts | |
with: | |
path: ~/.julia/artifacts | |
key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }} | |
restore-keys: | | |
${{ runner.os }}-test-${{ env.cache-name }}- | |
${{ runner.os }}-test- | |
${{ runner.os }}- | |
- name: Get changed files | |
id: RLExperiments-changed | |
uses: tj-actions/changed-files@v35 | |
with: | |
files: | | |
src/ReinforcementLearningExperiments/** | |
src/ReinforcementLearningZoo/** | |
src/ReinforcementLearningCore/** | |
src/ReinforcementLearningBase/** | |
- name: Test RLExperiments | |
if: (steps.RLExperiments-changed.outputs.any_changed == 'true') || (contains(github.event.pull_request.labels.*.name, 'Integration Test')) | |
run: | | |
julia --color=yes -e ' | |
using Pkg | |
Pkg.develop(path="src/ReinforcementLearningBase") | |
Pkg.develop(path="src/ReinforcementLearningCore") | |
Pkg.develop(path="src/ReinforcementLearningEnvironments") | |
Pkg.develop(path="src/ReinforcementLearningZoo") | |
Pkg.develop(path="src/ReinforcementLearningExperiments") | |
Pkg.build("ReinforcementLearningExperiments") | |
Pkg.test("ReinforcementLearningExperiments", coverage=true)' | |
- uses: julia-actions/julia-processcoverage@v1 | |
- uses: codecov/codecov-action@v3 | |
docs: | |
name: Documentation | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Get changed files | |
id: documentation-changed | |
uses: tj-actions/changed-files@v35 | |
with: | |
files: | | |
docs/** | |
- if: (steps.documentation-changed.outputs.any_changed == 'true') | |
run: python -m pip install --user matplotlib | |
- uses: julia-actions/setup-julia@v1 | |
with: | |
version: "1" | |
- name: Build homepage | |
if: (steps.documentation-changed.outputs.any_changed == 'true') | |
run: | | |
cd docs/homepage | |
julia --project --color=yes -e ' | |
using Pkg; Pkg.instantiate(); | |
using NodeJS; run(`$(npm_cmd()) install highlight.js`); | |
using Franklin; | |
optimize()' > build.log | |
- name: Make sure homepage is generated without error | |
if: (steps.documentation-changed.outputs.any_changed == 'true') | |
run: | | |
if grep -1 "Franklin Warning" build.log; then | |
echo "Franklin reported a warning" | |
exit 1 | |
else | |
echo "Franklin did not report a warning" | |
fi | |
- name: Build docs | |
if: (steps.documentation-changed.outputs.any_changed == 'true') | |
run: | | |
cd docs | |
julia --project --color=yes -e ' | |
using Pkg; Pkg.instantiate(); | |
include("make.jl")' | |
mv build homepage/__site/docs | |
- name: Deploy to the main repo | |
uses: peaceiris/actions-gh-pages@v3 | |
if: ${{ github.event_name == 'push' }} | |
with: | |
deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }} | |
external_repository: JuliaReinforcementLearning/JuliaReinforcementLearning.github.io | |
force_orphan: true | |
publish_branch: main | |
publish_dir: ./docs/homepage/__site |