Skip to content

Commit

Permalink
Merge pull request #6 from sunbeam-labs/5-containerize-and-version
Browse files Browse the repository at this point in the history
Containerize and version
  • Loading branch information
Ulthran authored Mar 29, 2024
2 parents 06c3f85 + acf80ac commit 5e3071a
Show file tree
Hide file tree
Showing 12 changed files with 231 additions and 717 deletions.
42 changes: 42 additions & 0 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: Push to DockerHub

on:
workflow_call:

workflow_dispatch:

jobs:
build-and-push-to-dockerhub:
name: Push Docker image to Docker Hub
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Get sbx version
shell: bash
run: |
SBX_VER=$(cat VERSION)
echo "SBX_VER=$SBX_VER" >> $GITHUB_ENV
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v5
with:
images: sunbeamlabs/sbx_coassembly

- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: .
file: envs/sbx_annotation.Dockerfile
push: true
tags: sunbeamlabs/sbx_coassembly:${{ env.SBX_VER }}
labels: ${{ steps.meta.outputs.labels }}
23 changes: 0 additions & 23 deletions .github/workflows/linter.yml

This file was deleted.

12 changes: 12 additions & 0 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
name: Tests

on:
pull_request:
branches:
- main

jobs:
run-tests:
uses: ./.github/workflows/tests.yml
secrets: inherit

79 changes: 79 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
name: Release

on:
release:
types: [published]

workflow_dispatch:

jobs:
run-tests:
uses: ./.github/workflows/tests.yml
secrets: inherit

check-version:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Get sbx version
shell: bash
run: |
SBX_VER=$(cat VERSION)
echo "SBX_VER=$SBX_VER" >> $GITHUB_ENV
- id: get_version
uses: battila7/get-version-action@v2

- name: Check version
shell: bash
run: |
RELEASE_VERSION=${{ steps.get_version.outputs.version-without-v }}
echo "Release version: ${RELEASE_VERSION}"
echo "Sbx version: ${{ env.SBX_VER }}"
if [[ $RELEASE_VERSION == ${{ env.SBX_VER }} ]]; then
echo "Versions match, continuing..."
else
echo "Versions don't match, exiting..."
exit 1
fi
push-to-dockerhub:
uses: ./.github/workflows/docker.yml
secrets: inherit
needs:
- run-tests
- check-version

test-apptainer:
name: Apptainer Test
runs-on: ubuntu-latest
needs: push-to-dockerhub

steps:
- name: Checkout Code
uses: actions/checkout@v4

- name: Set test env
run: echo "SUNBEAM_TEST_PROFILE=apptainer" >> $GITHUB_ENV

- uses: eWaterCycle/setup-apptainer@v2
with:
apptainer-version: 1.1.2

- name: Test with Sunbeam
uses: sunbeam-labs/sbx_test_action@v1
with:
test-directory: ".tests/e2e/"

- name: Dump Logs
shell: bash
if: always()
run: tail -n +1 logs/*

- name: Dump Stats
shell: bash
if: always()
run: cat stats/*
75 changes: 56 additions & 19 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -1,36 +1,73 @@
name: Tests

on:
pull_request:
branches: [ master, main ]
push:
branches: [ master, main ]
workflow_call:
workflow_dispatch:
schedule:
- cron: "0 13 * * 1"

jobs:
jobs:
lint:
name: Lint Code
runs-on: ubuntu-latest

steps:
- name: Checkout Code
uses: actions/checkout@v4

- uses: actions/setup-python@v5
with:
python-version: 3.12

- name: Install Dependencies
run: pip install black snakefmt

- name: Run Linter
run: |
black --check .
snakefmt --check *.smk
test-unit:
name: Run Extension Unit Tests
runs-on: ubuntu-latest

steps:
- name: Checkout Code
uses: actions/checkout@v4

- uses: actions/setup-python@v5
with:
python-version: 3.12

- name: Install Dependencies
run: pip install pytest

- name: Run Unit Tests
run: true #pytest .tests/unit/
# This'll require having a lib within scripts with internal tests

test-e2e:
name: Test Extension with Sunbeam
runs-on: ubuntu-latest
needs:
- test-unit
- lint

steps:
- name: Checkout Code
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Test with Sunbeam
uses: sunbeam-labs/sbx_test_action@v0
with:
sunbeam-version: 'dev'
install-options: '-m'
extension-name: 'sunbeam-labs/sbx_coassembly'
extension-branch-name: ${{ github.head_ref }}

- name: Dump Logs
shell: bash
if: always()
run: tail -n +1 logs/*
uses: sunbeam-labs/sbx_test_action@v1

#- name: Dump Logs
# shell: bash
# if: always()
# run: tail -n +1 logs/*

- name: Dump Stats
shell: bash
if: always()
run: cat stats/*
#- name: Dump Stats
# shell: bash
# if: always()
# run: cat stats/*
Loading

0 comments on commit 5e3071a

Please sign in to comment.