Fix and refactor SAC #2112
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 |