galaxyproject/galaxy_codex (opens in new tab)
10 workflows
Deploy Jekyll site to Pages
.github/workflows/deploy_jekyll.yml (opens in new tab)Triggers
push workflow_dispatch
Jobs
| Job | Runs on | Steps | Actions used |
|---|---|---|---|
| build | ubuntu-24.04 | 6 | actions/checkout@v6 ruby/setup-ruby@v1.288.0 actions/configure-pages@v5 actions/upload-pages-artifact@v4 |
| deploy | ubuntu-latest | 1 | actions/deploy-pages@v4 |
Raw YAML
name: Deploy Jekyll site to Pages
on:
# Runs on pushes targeting the default branch
push:
branches: [ "main" ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false
jobs:
build:
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup Ruby
uses: ruby/setup-ruby@v1.288.0
with:
ruby-version: '3.3'
bundler-cache: true
cache-version: 0
- name: Setup Pages
id: pages
uses: actions/configure-pages@v5
- name: Install dependencies
run: |
bundle install
- name: Build with Jekyll
# Outputs to the './_site' directory by default
run: |
bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}"
env:
PAGES_REPO_NWO: ${{ github.repository }}
JEKYLL_ENV: production
JEKYLL_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
JEKYLL_BUILD_BRANCH: ${{ github.ref_name }}
JEKYLL_BASE_PATH: ${{ steps.pages.outputs.base_path }}
- name: Upload artifact
# Automatically uploads an artifact from the './_site' directory by default
uses: actions/upload-pages-artifact@v4
with:
path: _site
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
Last fetched:
Weekly resource fetching and community filtering
.github/workflows/fetch_filter_resources.yaml (opens in new tab)Triggers
workflow_dispatch schedule
Jobs
| Job | Runs on | Steps | Actions used |
|---|---|---|---|
| Fetch servers | ubuntu-latest | 5 | actions/checkout@v6 actions/setup-python@v6 actions/upload-artifact@v7 |
| Fetch tool stepwise | ubuntu-latest | 6 | actions/checkout@v6 actions/setup-python@v6 actions/download-artifact@v8 actions/upload-artifact@v7 |
| Fetch tutorials | ubuntu-latest | 5 | actions/checkout@v6 actions/setup-python@v6 actions/upload-artifact@v7 |
| Fetch workflows | ubuntu-latest | 5 | actions/checkout@v6 actions/setup-python@v6 actions/upload-artifact@v7 |
| Merge tools, filter the resources for communities, and populate labs | ubuntu-latest | 18 | actions/checkout@v6 actions/setup-python@v6 actions/download-artifact@v8 actions/download-artifact@v8 actions/download-artifact@v8 peter-evans/create-pull-request@v8 |
Raw YAML
name: Weekly resource fetching and community filtering
on:
workflow_dispatch:
schedule:
#Every Sunday at 8:00 am
- cron: "0 8 * * 0"
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "tools"
cancel-in-progress: false
jobs:
fetch-servers:
runs-on: ubuntu-latest
name: Fetch servers
steps:
- name: Checkout main
uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: '3.11'
- name: Install requirement
run: |
python -m pip install -r requirements.txt
sudo apt-get install jq
- name: Fetch list of all available servers
run: |
python sources/bin/get_public_galaxy_servers.py -o sources/data/available_public_servers.csv
- name: Archive available servers
uses: actions/upload-artifact@v7
with:
name: available-servers
path: sources/data/available_public_servers.csv
fetch-tools-stepwise:
runs-on: ubuntu-latest
name: Fetch tool stepwise
environment: fetch-tools
needs: fetch-servers
strategy:
#max-parallel: 1 #need to run one after another, since otherwise there is a chance, that mulitple jobs want to push to the results branch at the same time (which fails due to merge)
matrix:
subset:
- repositories01.list
- repositories02.list
- repositories03.list
- repositories04.list
steps:
- name: Checkout main
uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: '3.11'
- name: Install requirement
run: python -m pip install -r requirements.txt
- name: Download available servers
uses: actions/download-artifact@v8
with:
name: available-servers
path: sources/data/
- name: Fetch all tool stepwise
run: |
bash sources/bin/extract_all_tools.sh "${{ matrix.subset }}"
env:
GITHUB_API_KEY: ${{ secrets.GH_API_TOKEN }}
- name: Archive tool sublists production artifacts
uses: actions/upload-artifact@v7
with:
name: tools-${{ matrix.subset }}
path: communities/all/resources/${{ matrix.subset }}_tools.*
fetch-tutorials:
runs-on: ubuntu-latest
name: Fetch tutorials
steps:
- name: Checkout main
uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: '3.11'
- name: Install requirement
run: |
python -m pip install -r requirements.txt
sudo apt-get install jq
- name: Fetch all tutorials
run: |
bash sources/bin/extract_all_tutorials.sh
env:
PLAUSIBLE_API_KEY: ${{ secrets.PLAUSIBLE_API_TOKEN }}
- name: Archive tutorials artifacts
uses: actions/upload-artifact@v7
with:
name: tutorials
path: communities/all/resources/tutorials.*
fetch-workflows:
runs-on: ubuntu-latest
name: Fetch workflows
steps:
- name: Checkout main
uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: '3.11'
- name: Install requirement
run: |
python -m pip install -r requirements.txt
sudo apt-get install jq
- name: Fetch all workflows
run: |
bash sources/bin/extract_all_workflows.sh
env:
PLAUSIBLE_API_KEY: ${{ secrets.PLAUSIBLE_API_TOKEN }}
- name: Archive tutorials artifacts
uses: actions/upload-artifact@v7
with:
name: workflows
path: communities/all/resources/workflows.json
# fetch-citations:
# runs-on: ubuntu-latest
# name: Fetch citations
# steps:
# - name: Checkout main
# uses: actions/checkout@v6
# - uses: actions/setup-python@v6
# with:
# python-version: '3.11'
# - name: Install requirement
# run: |
# python -m pip install -r requirements.txt
# sudo apt-get install jq
# - name: Fetch all citations
# run: |
# bash sources/bin/extract_all_citations.sh
# - name: Archive citations artifacts
# uses: actions/upload-artifact@v7
# with:
# name: workflows
# path: communities/all/resources/citations.json
merge-fetch-filter:
runs-on: ubuntu-latest
needs:
- fetch-tools-stepwise
- fetch-tutorials
- fetch-workflows
# - fetch-citations
name: Merge tools, filter the resources for communities, and populate labs
steps:
- name: Checkout main
uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: '3.11'
- name: Install requirement
run: |
python -m pip install -r requirements.txt
sudo apt-get install jq
- name: Download stepwise tool lists
uses: actions/download-artifact@v8
with:
pattern: tools-*
merge-multiple: true
path: communities/all/resources/
- name: Download tutorials
uses: actions/download-artifact@v8
with:
pattern: tutorials
merge-multiple: true
path: communities/all/resources/
- name: Download workflows
uses: actions/download-artifact@v8
with:
pattern: workflows
merge-multiple: true
path: communities/all/resources/
- name: Display structure of downloaded files
run: ls -R communities/all/resources/
- name: Merge all tools
run: | #merge files with only one header -> https://stackoverflow.com/questions/16890582/unixmerge-multiple-csv-files-with-same-header-by-keeping-the-header-of-the-firs; map(.[]) -> https://stackoverflow.com/questions/42011086/merge-arrays-of-json (get flat array, one tool per entry)
awk 'FNR==1 && NR!=1{next;}{print}' communities/all/resources/repositories*.list_tools.tsv > communities/all/resources/tools.tsv
jq -s 'map(.[])' communities/all/resources/repositories*.list_tools.json > communities/all/resources/tools.json
rm communities/all/resources/repositories*.list_tools.json
rm communities/all/resources/repositories*.list_tools.tsv
rm communities/all/resources/repositories*.list_tools.yml
- name: Generate tools wordcloud and interactive table
run: |
bash sources/bin/format_tools.sh
- name: Filter workflows for communities
run: |
bash sources/bin/get_community_workflows.sh
- name: Filter tutorials for communities
run: |
bash sources/bin/get_community_tutorials.sh
- name: Filter citations for communities
run: |
bash sources/bin/get_community_citations.sh no-scholarly
#- name: Update tool to keep and exclude for communities
# run: |
# bash sources/bin/update_tools_to_keep_exclude.sh
- name: Filter tools for communities
run: |
bash sources/bin/get_community_tools.sh
- name: Populate Microbiology (microGalaxy) Lab
run: |
bash sources/bin/populate_labs.sh
env:
COMMUNITY: microgalaxy
- name: Populate biodiversity lab
run: |
bash sources/bin/populate_labs.sh
env:
COMMUNITY: biodiversity
- name: Populate earth-system Lab
run: |
bash sources/bin/populate_labs.sh
env:
COMMUNITY: earth
- name: Populate Imaging lab
run: |
bash sources/bin/populate_labs.sh
env:
COMMUNITY: imaging
#To initiate a lab, we recommend adding it below. It will automatically create the folders and structures required.
# - name: Populate <community-name> Lab
# run: |
# bash sources/bin/populate_labs.sh
# env:
# COMMUNITY: <community-name>
- name: Create Pull Request
uses: peter-evans/create-pull-request@v8
with:
commit-message: Update resources
title: Automatic resources update
body: Automatic resource update done via GitHub Action once a week
base: main
branch: resource-update
delete-branch: true
add-paths: |
communities/
Last fetched:
Filter community resources
.github/workflows/filter_communities.yaml (opens in new tab)Triggers
workflow_dispatch push
Jobs
| Job | Runs on | Steps | Actions used |
|---|---|---|---|
| Filter resources for communities | ubuntu-latest | 7 | actions/checkout@v6 actions/setup-python@v6 peter-evans/create-pull-request@v8 |
Raw YAML
name: Filter community resources
on:
workflow_dispatch:
# the workflow it also triggered when the community definitions are changed
push:
paths:
- 'data/communities/*/metadata/*'
branches: ["main"]
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "filter"
cancel-in-progress: false
jobs:
filter-resources:
name: Filter resources for communities
runs-on: ubuntu-latest
steps:
- name: Checkout main
uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: '3.11'
- name: Install requirement
run: python -m pip install -r requirements.txt
- name: Filter tutorials for communities
run: |
bash bin/get_community_tutorials.sh
- name: Update tool to keep and exclude for communities
run: |
bash bin/update_tools_to_keep_exclude.sh
- name: Filter tools for communities
run: |
bash bin/get_community_tools.sh
- name: Create Pull Request
uses: peter-evans/create-pull-request@v8
with:
commit-message: Update resources
title: Resource filtering
body: Resource filering done via GitHub Action when the community definitions are changed
base: main
branch: resource-filtering
delete-branch: true
Last fetched:
Galaxy Labs PR - post comment(s)
.github/workflows/labs_post_comments.yml (opens in new tab)Triggers
workflow_run
Jobs
| Job | Runs on | Steps | Actions used |
|---|---|---|---|
| test-labs | ubuntu-latest | 6 | actions/checkout@v6 actions/setup-python@v6 |
Raw YAML
name: Galaxy Labs PR - post comment(s)
on:
workflow_run:
workflows: ["Test changed Lab pages"]
types:
- completed
jobs:
test-labs:
runs-on: ubuntu-latest
steps:
- name: Checkout base branch
uses: actions/checkout@v6
with:
repository: ${{ github.repository }}
ref: main
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.12'
- name: Install pygithub
run: pip install pygithub==2.6
- name: Install GitHub CLI
run: sudo apt-get install gh
- name: Download "Test changed Lab pages" artifact
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh repo set-default galaxyproject/galaxy_codex
RUN_ID=$(gh run list --workflow "Test changed Lab pages" --limit 1 | tail -n 1 | grep -oE '\b[0-9]{11}\b')
echo "RUN_ID: $RUN_ID"
gh run view $RUN_ID --log
gh run download $RUN_ID --name labs_test_comments --dir ./labs_test_comments
- name: Post comment if matching changes found
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} #${{ secrets.GH_PR_TOKEN }}
run: |
if ls labs_test_comments/*.md 1> /dev/null 2>&1; then
echo "Changed files found"
echo "Sourcing environment variables from env.sh:"
cat labs_test_comments/env.sh
source labs_test_comments/env.sh
python3 ./sources/bin/labs_post_comments.py labs_test_comments
else
echo "No changed files found"
fi
Last fetched:
Test changed Lab pages
.github/workflows/labs_test.yml (opens in new tab)Triggers
pull_request
Jobs
| Job | Runs on | Steps | Actions used |
|---|---|---|---|
| test-changed-labs | ubuntu-latest | 9 | actions/checkout@v6 actions/setup-python@v6 actions/checkout@v6 actions/checkout@v6 actions/upload-artifact@v7 |
Raw YAML
name: Test changed Lab pages
on:
pull_request:
types: [opened, reopened, synchronize]
jobs:
test-changed-labs:
runs-on: ubuntu-latest
steps:
- name: Checkout base branch
uses: actions/checkout@v6
with:
repository: ${{ github.repository }}
ref: main
path: base
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.13'
- name: Checkout base branch
uses: actions/checkout@v6
with:
repository: ${{ github.event.pull_request.base.repo.full_name }}
ref: ${{ github.event.pull_request.base.ref }}
path: base
- name: Checkout head branch
uses: actions/checkout@v6
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
ref: ${{ github.event.pull_request.head.ref }}
path: head
- name: Get list of changed files
id: changed-files
run: |
cd head
git remote add upstream https://github.com/${{ github.repository }}
git fetch upstream main
git diff --name-only upstream/main...HEAD | grep '/lab/' > ../paths.txt || true
cd ..
echo ""
echo "Changed files:"
cat paths.txt
mkdir output
mv paths.txt output/
- name: Test changed Lab pages
id: test-labs
env:
BRANCH_NAME: ${{ github.event.pull_request.head.ref }}
HEAD_REPO: ${{ github.event.pull_request.head.repo.full_name }}
run: |
if [ -s output/paths.txt ]; then
echo "Changed files found"
python3 base/sources/bin/labs_test.py output/paths.txt
else
echo "No changes to Galaxy Labs found"
fi
continue-on-error: true
- name: Write pull request variables to env.sh
env:
PR_NUMBER: ${{ github.event.number }}
BRANCH_NAME: ${{ github.event.pull_request.head.ref }}
HEAD_REPO: ${{ github.event.pull_request.head.repo.full_name }}
BASE_REPO: ${{ github.repository }}
run: |
echo "export PR_NUMBER=${PR_NUMBER}" >> output/env.sh
echo "export BASE_REPO=${BASE_REPO}" >> output/env.sh
- name: Upload test result comments artifact
uses: actions/upload-artifact@v7
with:
name: labs_test_comments
path: output
- name: Check outcome of the previous step
id: check-outcome
run: |
if [ "${{ steps.test-labs.outcome }}" == "failure" ]; then
echo "Test failed"
exit 1
else
echo "Test passed"
fi
Last fetched:
Update Labs Engine cache
.github/workflows/labs_update_cache.yml (opens in new tab)Triggers
pull_request
Jobs
| Job | Runs on | Steps | Actions used |
|---|---|---|---|
| update_cache | ubuntu-latest | 4 | actions/checkout@v6 |
Raw YAML
name: Update Labs Engine cache
on:
pull_request:
types: [closed]
branches:
- main
jobs:
update_cache:
if: github.event.pull_request.merged == true
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Get list of changed files
run: |
BASE=${{ github.event.pull_request.base.sha }}
HEAD=${{ github.event.pull_request.merge_commit_sha }}
git diff --name-only $BASE $HEAD | grep "^communities/[^/]\+/lab" > paths.txt || true
echo ""
echo "Changed files:"
cat paths.txt
- name: Test changed Lab pages
id: test-labs
env:
BRANCH_NAME: main
HEAD_REPO: ${{ github.event.pull_request.base.repo.full_name }}
run: |
if [ -s paths.txt ]; then
echo "Changed files found. Updating Labs Engine cache and running tests..."
ln -s . head # script expects repo to be here
python3 sources/bin/labs_test.py paths.txt
else
echo "No changes to Galaxy Labs found"
fi
continue-on-error: true
- name: Check outcome of the previous step
id: check-outcome
run: |
if [ "${{ steps.test-labs.outcome }}" == "failure" ]; then
echo "Test failed"
exit 1
else
echo "Test passed"
fi
Last fetched:
Code Best Practices and Testing
.github/workflows/lint_and_unittest.yaml (opens in new tab)Triggers
push pull_request
Jobs
| Job | Runs on | Steps | Actions used |
|---|---|---|---|
| lint | ubuntu-latest | 4 | actions/checkout@v6 actions/setup-python@v6 |
| test | ubuntu-latest | 7 | actions/checkout@v6 actions/setup-python@v6 actions/upload-artifact@v7 |
Raw YAML
name: Code Best Practices and Testing
on:
push:
pull_request:
branches:
- main
paths:
- 'sources/bin/**'
permissions:
contents: read
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: '3.11'
- name: Install tox
run: python -m pip install 'tox>=1.8.0'
- name: Lint
run: tox -e lint
test:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.11']
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: python -m pip install -r requirements.txt
- name: Run tests and measure coverage
working-directory: sources
run: |
PYTHONPATH=bin coverage run -m unittest discover -s bin/tests -v
- name: Print coverage report
working-directory: sources
run: coverage report
- name: Generate HTML coverage report
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
working-directory: sources
run: coverage html
- name: Upload coverage HTML report
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
uses: actions/upload-artifact@v7
with:
name: coverage-html
path: sources/htmlcov # Use full path relative to root
Last fetched:
Lint Jekyll site
.github/workflows/lint_jekyll.yaml (opens in new tab)Triggers
push pull_request
Jobs
| Job | Runs on | Steps | Actions used |
|---|---|---|---|
| check-internal-links | ubuntu-latest | 5 | actions/checkout@v6 ruby/setup-ruby@v1.288.0 actions/configure-pages@v5 |
Raw YAML
name: Lint Jekyll site
on: [push, pull_request]
jobs:
check-internal-links:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: ruby/setup-ruby@v1.288.0
with:
ruby-version: '3.3'
bundler-cache: true
cache-version: 0
- name: Setup Pages
id: pages
uses: actions/configure-pages@v5
- name: Install dependencies
run: |
bundle install
- name: Build with Jekyll
# Outputs to the './_site' directory by default
run: |
bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}" --strict_front_matter
env:
PAGES_REPO_NWO: ${{ github.repository }}
JEKYLL_ENV: production
JEKYLL_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
JEKYLL_BUILD_BRANCH: ${{ github.ref_name }}
JEKYLL_BASE_PATH: ${{ steps.pages.outputs.base_path }}
#- name: Validate HTML and check links
# run: |
# bundle exec htmlproofer \
# --allow_missing_href=true \
# --ignore-urls "/.*localhost.*/","/.*gitter\.im.*/" \
# --enforce-https=false \
# --disable-external=true \
# --ignore_empty_alt=true \
# --ignore_missing_alt=true \
# --check-internal-hash=false \
# ./_site
Last fetched:
Triggers
pull_request push
Jobs
| Job | Runs on | Steps | Actions used |
|---|---|---|---|
| test-tools | ubuntu-latest | 6 | actions/checkout@v6 actions/setup-python@v6 |
| test-tutorials | ubuntu-latest | 5 | actions/checkout@v6 actions/setup-python@v6 |
| test-workflows | ubuntu-latest | 5 | actions/checkout@v6 actions/setup-python@v6 |
Raw YAML
name: Run tests
# This GitHub Actions workflow is designed to automate testing for the project.
# It triggers under two conditions:
# 1. Pull requests targeting the main branch, ensuring that internal changes
# are validated before merging.
# 2. Pushes to the dev branch, allowing for continuous integration
# as changes are made directly to the development branch.
#
# The workflow consists of three main jobs:
# - **test-tools**: Runs tests for tools extracted from the repository.
# - **test-tutorials**: Runs tests for community tutorials.
# - **test-workflows**: Runs tests for workflow scripts.
#
# Each job includes the following steps:
# - Checkout the repository code.
# - Set up the Python environment using the specified version.
# - Install required dependencies.
# - Execute scripts for extraction and filtering of tools, tutorials, or workflows.
#
# This ensures that the code remains reliable and functional as new changes are introduced.
on:
pull_request:
branches:
- main # Trigger on pull requests targeting the main branch
push:
branches:
- dev # Trigger on pushes to the dev branch
jobs:
test-tools:
runs-on: ubuntu-latest
# This job runs tests for tools.
# It checks for internal pull requests targeting the main branch,
# as well as pushes to the dev branch.
# The workflow performs the following steps:
# 1. Checkout the repository code.
# 2. Set up Python environment using the specified version.
# 3. Install required Python packages.
# 4. Extract tools using a provided script.
# 5. Filter community tools using a provided script.
# 6. Format tools into an interactive table and generate a word cloud.
if: github.event.pull_request.head.repo.full_name == github.repository || github.ref == 'refs/heads/dev'
strategy:
matrix:
python-version: ['3.11']
environment: fetch-tools
steps:
- name: Checkout
uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Install requirements
run: python -m pip install -r requirements.txt
- name: Tool extraction
run: |
bash sources/bin/extract_all_tools.sh test
env:
GITHUB_API_KEY: ${{ secrets.GH_API_TOKEN }}
- name: Tool filter
run: |
bash sources/bin/get_community_tools.sh test
- name: Create interactive table and wordcloud
run: |
bash sources/bin/format_tools.sh test
test-tutorials:
runs-on: ubuntu-latest
# This job runs tests for tutorials.
# Similar to the tools job, it checks for internal pull requests
# to the main branch and pushes to the dev branch.
# The workflow performs the following steps:
# 1. Checkout the repository code.
# 2. Set up Python environment using the specified version.
# 3. Install required Python packages.
# 4. Extract tutorials using a provided script.
# 5. Filter community tutorials using a provided script.
if: github.event.pull_request.head.repo.full_name == github.repository || github.ref == 'refs/heads/dev'
strategy:
matrix:
python-version: ['3.11']
steps:
- name: Checkout
uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Install requirements
run: python -m pip install -r requirements.txt
- name: Tutorial extraction
run: |
bash sources/bin/extract_all_tutorials.sh test
env:
PLAUSIBLE_API_KEY: ${{ secrets.PLAUSIBLE_API_TOKEN }}
- name: Tutorial filtering
run: |
bash sources/bin/get_community_tutorials.sh test
test-workflows:
runs-on: ubuntu-latest
# This job runs tests for workflows.
# It performs the same checks as the other jobs, ensuring
# quality for workflow scripts.
if: github.event.pull_request.head.repo.full_name == github.repository || github.ref == 'refs/heads/dev'
strategy:
matrix:
python-version: ['3.11']
steps:
- name: Checkout
uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Install requirements
run: python -m pip install -r requirements.txt
- name: Workflow extraction
run: |
bash sources/bin/extract_all_workflows.sh test
- name: Workflow filtering
run: |
bash sources/bin/get_community_workflows.sh test
# test-citations:
# runs-on: ubuntu-latest
# This job runs tests for citations.
# Similar to the tools job, it checks for internal pull requests
# to the main branch and pushes to the dev branch.
# The workflow performs the following steps:
# 1. Checkout the repository code.
# 2. Set up Python environment using the specified version.
# 3. Install required Python packages.
# 4. Extract citations using a provided script.
# 5. Filter community citations using a provided script.
# if: github.event.pull_request.head.repo.full_name == github.repository || github.ref == 'refs/heads/dev'
# strategy:
# matrix:
# python-version: ['3.11']
# steps:
# - name: Checkout
# uses: actions/checkout@v6
# - uses: actions/setup-python@v6
# with:
# python-version: ${{ matrix.python-version }}
# - name: Install requirements
# run: python -m pip install -r requirements.txt
# - name: Citation extraction
# run: |
# bash sources/bin/extract_all_citations.sh test
# - name: Citation filtering
# run: |
# bash sources/bin/get_community_citations.sh test
Last fetched:
Deploy static content to Pages
.github/workflows/static.yml (opens in new tab)Triggers
workflow_run workflow_dispatch
Jobs
| Job | Runs on | Steps | Actions used |
|---|---|---|---|
| deploy | ubuntu-latest | 4 | actions/checkout@v6 actions/configure-pages@v5 actions/upload-pages-artifact@v4 actions/deploy-pages@v4 |
Raw YAML
# Simple workflow for deploying static content to GitHub Pages
name: Deploy static content to Pages
on:
# the workflow it triggered when the tools where filtered
workflow_run:
workflows: ["Filter community tools"]
types:
- completed
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false
jobs:
# Single deploy job since we're just deploying
deploy:
if: github.repository_owner == 'galaxyproject'
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Checkout main
uses: actions/checkout@v6
- name: Setup Pages
uses: actions/configure-pages@v5
- name: Upload artifact
uses: actions/upload-pages-artifact@v4
with:
# Upload results index.html repository
path: '.'
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
Last fetched: