Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,10 @@ See [docs/MAINTENANCE.md](docs/MAINTENANCE.md) for the versioning policy and rel

### Added
- GitHub Action (`update-tool-versions`) that checks pinned tool versions against upstream on a schedule (1 January and 1 July) and opens a pull request with any updates. See [docs/MAINTENANCE.md](docs/MAINTENANCE.md#5-github-actions-automation).

### Fixed
- Update tools to the latest version [PR #13](https://github.com/AustralianBioCommons/BioShell/pull/13).
- Update README based on feedback [Issue #14](https://github.com/AustralianBioCommons/BioShell/issues/14).

### Changed
- Rename Shelley and update installation to use `uv`.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ NOTE: Do not select an external/public network here

In the Security Groups tab, ensure the following are listed under Allocated by clicking the up arrow in the Avialable groups:
- **default** that allows outbound traffic and internal communication
- **SSH-access security group** that allows inbound TCP port 22 from your IP or network
- **SSH-access security group** that allows inbound TCP port 22 from your IP or network. Follow the [guide](https://tutorials.rc.nectar.org.au/sec-groups-101/03-create) to create one if you don't already have one.

SSH access is required to log in to the instance.

Expand Down Expand Up @@ -204,7 +204,7 @@ packer init .

### Step 2: Prepare Packer build configuration

Before running the build, review and update `[platform_name].pkrvars.hcl` to ensure the values match your OpenStack environment. If using a prepared config skip to step 3.
Before running the build, review and update `[platform_name].pkrvars.hcl` in [`packer vars`](build/packer-vars) to ensure the values match your OpenStack environment. If using a prepared config skip to step 3.

**Note: Example working configurations for [Nectar](build/packer-vars/nectar.pkrvars.hcl) and [Nirin](build/packer-vars/nirin.pkrvars.hcl) are included and were last successfully tested on 2 February 2026. The Nirin configuration requires you to add your project [network](#network-cloud-dependant).**

Expand Down
2 changes: 1 addition & 1 deletion build/ansible/build-bioshell.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@
- nextflow
- rstudio
- cvmfs
- shelley-bio
- shelley
22 changes: 14 additions & 8 deletions build/ansible/roles/common/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -158,11 +158,11 @@

- name: Create ansible modulefile
copy:
dest: "/apps/Modules/modulefiles/ansible/{{ ansible_version.string }}"
dest: "/apps/Modules/modulefiles/ansible/{{ ansible_target_version }}"
content: |
#%Module1.0

prepend-path PATH "/apps/ansible/{{ ansible_version.string }}/bin"
prepend-path PATH "/apps/ansible/{{ ansible_target_version }}/bin"

- name: Ensure motd.d directory exists
file:
Expand All @@ -181,21 +181,27 @@
# #
# Welcome to BioShell! #
# #
# To learn how BioShell is built, visit: #
# https://github.com/AustralianBioCommons/BioShell #
# #
# Documentation is also available at: #
# https://sih.tools/bioshell-guide #
# #
# A range of commonly used bioinformatics software is available #
# via CVMFS. #
# #
# To make the software folders visible, run: #
# cvmfs_config probe #
# #
# If you need help finding and installing software, #
# ask Shelley-Bio #
# ask Shelley. #
# _ .----. #
# (_ \/ \_, #
# `uu----uu' #
# Basic commands: #
# shelley-bio find <tool> #
# shelley-bio search "<function>" #
# shelley-bio versions <tool> #
# shelley-bio build <tool> #
# shelley-bio interactive #
# shelley find <tool> #
# shelley search "<function>" #
# shelley versions <tool> #
# shelley build <tool> #
# shelley interactive #
##################################################################
18 changes: 14 additions & 4 deletions build/ansible/roles/nextflow/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,20 @@
state: present
when: ansible_os_family == "Debian"

- name: Set Java {{ java_version }} as default
alternatives:
name: java
path: /usr/lib/jvm/java-{{ java_version }}-openjdk-amd64/bin/java
- name: Register Java {{ java_version }} as an alternative
command: >
update-alternatives --install /usr/bin/java java
/usr/lib/jvm/java-{{ java_version }}-openjdk-amd64/bin/java 1
args:
creates: /etc/alternatives/java
when: ansible_os_family == "Debian"

- name: Set Java {{ java_version }} as the active alternative
command: >
update-alternatives --set java
/usr/lib/jvm/java-{{ java_version }}-openjdk-amd64/bin/java
register: java_alt_set
changed_when: "'link currently' not in java_alt_set.stdout"
when: ansible_os_family == "Debian"

- name: Create Nextflow directories
Expand Down
122 changes: 0 additions & 122 deletions build/ansible/roles/shelley-bio/tasks/main.yml

This file was deleted.

49 changes: 49 additions & 0 deletions build/ansible/roles/shelley/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
---
- name: Ensure prerequisites are installed (python3, curl, git)
apt:
name:
- python3
- curl
- git
state: present
update_cache: yes

- name: Create /opt/uv directory
file:
path: /opt/uv
state: directory
owner: root
group: root
mode: '0755'

- name: Check if uv is already installed
stat:
path: /opt/uv/uv
register: uv_binary

- name: Install uv system-wide into /opt/uv
shell: curl -LsSf https://astral.sh/uv/install.sh | env UV_INSTALL_DIR=/opt/uv sh
args:
executable: /bin/bash
when: not uv_binary.stat.exists

- name: Verify uv installation
command: /opt/uv/uv --version
register: uv_version
changed_when: false

- name: Symlink uv onto PATH
file:
src: /opt/uv/uv
dest: /usr/local/bin/uv
state: link
force: yes

- name: Install shelley into system tool location, linked onto PATH
command: >
/opt/uv/uv tool install git+https://github.com/Sydney-Informatics-Hub/shelley
environment:
UV_TOOL_DIR: /opt/uv/tools
UV_TOOL_BIN_DIR: /usr/local/bin
args:
creates: /usr/local/bin/shelley
7 changes: 7 additions & 0 deletions build/ansible/roles/singularity/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,13 @@
module-whatis "Sets up the Singularity system in your environment"
prepend-path PATH "{{ singularity_prefix }}/{{ singularity_version }}/bin"

- name: Auto-load the singularity module for every login shell
lineinfile:
path: /etc/environment
regexp: '^LMOD_SYSTEM_DEFAULT_MODULES='
line: 'LMOD_SYSTEM_DEFAULT_MODULES="singularity"'
state: present

- name: Install shpc
shell: |
mkdir -p /opt/shpc/bin
Expand Down
37 changes: 0 additions & 37 deletions build/ansible/roles/validate_shelley-bio/tasks/main.yml

This file was deleted.

47 changes: 47 additions & 0 deletions build/ansible/roles/validate_shelley/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
- name: Check shelley executable exists
stat:
path: /usr/local/bin/shelley
register: shelley_bin
failed_when: not shelley_bin.stat.exists

- name: Check shelley executable is executable
failed_when: not shelley_bin.stat.executable
assert:
that:
- shelley_bin.stat.executable

- name: Run shelley --help as a smoke test
command: shelley --help
changed_when: false
register: shelley_help
failed_when: false

- name: Report shelley --help result
debug:
msg: "{{ 'OK' if shelley_help.rc == 0 else 'WARNING: shelley --help failed' }}"

- name: Run shelley --version as a smoke test
command: shelley --version
changed_when: false
register: shelley_version
failed_when: false

- name: Report shelley --version result
debug:
msg: "{{ 'OK' if shelley_version.rc == 0 else 'WARNING: shelley --version failed' }}"

- name: Check MOTD exists
stat:
path: /etc/motd.d/bioshell
register: motd_file

- name: Assert MOTD exists
assert:
that:
- motd_file.stat is defined
- motd_file.stat.exists

- name: Check MOTD contains BioShell marker
command: grep -q "BioShell" /etc/motd.d/bioshell
changed_when: false
2 changes: 1 addition & 1 deletion build/ansible/test-bioshell.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@
- validate_nextflow
- validate_jupyter
- validate_rstudio
- validate_shelley-bio
- validate_shelley
Loading