Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add shellcheck ci #299

Draft
wants to merge 7 commits into
base: master
Choose a base branch
from
Draft
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
33 changes: 14 additions & 19 deletions .github/workflows/perl-code-tidy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,24 +15,19 @@ on:
jobs:
tidy-critic-check:
runs-on: ubuntu-latest
steps:
- name: Set up Perl environment
uses: shogo82148/actions-setup-perl@v1
with:
perl-version: '5.34'

- name: Install Dependencies
run: |
cpanm --quiet Code::TidyAll Perl::Critic
container:
image: perldocker/perl-tester:latest

- name: Check out code
uses: actions/checkout@v4
steps:
- name: Check out code
uses: actions/checkout@v4

- name: Run tidyall with Perl::Critic
run: |
cd perl
tidyall -a
if [[ $? != 0 ]]; then
echo "Perl code is not tidy or has critic violations!"
exit 1
fi
- name: Run tidyall
shell: bash
run: |
cd perl
tidyall -a
if [[ $? != 0 ]]; then
echo "Perl code is not tidy or has critic violations"
exit 1
fi
36 changes: 17 additions & 19 deletions .github/workflows/perl-package-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,40 +5,38 @@ on: [push, pull_request]
jobs:
test-perl-package:
runs-on: ubuntu-latest
container:
image: perldocker/perl-tester:latest

steps:
- name: Setup perl
uses: shogo82148/actions-setup-perl@v1
with:
perl-version: ${{ inputs.perl-version }}

- name: Install Dist::Zilla
shell: bash
run: |
cpanm --quiet Dist::Zilla Archive::Tar::Wrapper
- name: Perl version
run: perl -V

- name: Install system dependencies
shell: bash
run: |
sudo apt-get update
sudo apt-get install -y lz4
run: apt-get install --no-install-recommends -y lz4

- name: Install one-off Bystro dependencies
shell: bash
run: |
cpanm --quiet https://github.com/bystrogenomics/msgpack-perl.git
cpanm --quiet --notest MouseX::Getopt
cpanm --quiet DBD::mysql@4.051
cpm install -g https://github.com/bystrogenomics/msgpack-perl.git
cpm install -g --no-test MouseX::Getopt
cpm install -g DBD::mysql@4.051
git clone --depth 1 --recurse-submodules https://github.com/salortiz/LMDB_File.git \
&& cd LMDB_File \
&& cpanm --quiet .

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

- name: Test Bystro perl codebase
- name: Install Bystro dependencies
run: |
cd perl
dzil authordeps --missing | cpanm --quiet
dzil listdeps --missing | cpanm --quiet
dzil test
cpm install -g --show-build-log-on-failure $(dzil authordeps --missing)
cpm install -g --show-build-log-on-failure $(dzil listdeps --missing)

- name: Test Bystro
run: cd perl && dzil test --all

- name: Build Bystro tarball
run: cd perl && dzil build
21 changes: 21 additions & 0 deletions .github/workflows/shellcheck.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
on:
push:
paths:
- '**.sh'
- '**.bash'
pull_request:
paths:
- '**.sh'
- '**.bash'

name: shellcheck

jobs:
shellcheck:
name: Shellcheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run ShellCheck
uses: ludeeus/action-shellcheck@master
23 changes: 10 additions & 13 deletions perl/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ ENV PATH="/app/bin:${PATH}"
# Note: installing libmariadb-dev rather than libmysql-dev since the latter was removed
RUN apt-get update \
&& apt-get install -y \
awscli \
build-essential \
bzip2 \
git \
Expand All @@ -34,8 +33,6 @@ RUN apt-get update \
libmariadb-dev \
libssl-dev \
lz4 \
nodejs \
npm \
openssl \
patch \
pigz \
Expand All @@ -45,9 +42,6 @@ RUN apt-get update \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

# Install pm2
RUN npm install -g pm2

WORKDIR /app/liftOver

# Install liftOver into a common system directory, /usr/local/bin
Expand All @@ -60,18 +54,21 @@ RUN rm -rf /app/liftOver
# Change working directory to perl-deps
WORKDIR /app/perl-deps

# install cpm for faster installation of perl packages
RUN curl -fsSL https://raw.githubusercontent.com/skaji/cpm/main/cpm | perl - install -g App::cpm

# Install Dist::Zilla
RUN cpanm --quiet Dist::Zilla Archive::Tar::Wrapper
RUN cpm install -g Dist::Zilla Archive::Tar::Wrapper

# Install one-off Bystro dependencies that require special installation
RUN cpanm --quiet https://github.com/bystrogenomics/msgpack-perl.git
RUN cpanm --quiet --notest MouseX::Getopt
RUN cpm install -g https://github.com/bystrogenomics/msgpack-perl.git
RUN cpm install -g --no-test MouseX::Getopt
RUN git clone --depth 1 --recurse-submodules https://github.com/salortiz/LMDB_File.git \
&& cd LMDB_File \
&& cpanm --quiet .

# Install workaround because default DBD::mysql, i.e. version >5.x, will not automatically install on ubuntu
RUN cpanm --quiet DBD::mysql@4.051
RUN cpm install -g DBD::mysql@4.051

# Remove perl-deps directory
RUN rm -rf /app/perl-deps
Expand All @@ -83,12 +80,12 @@ WORKDIR /app/bystro-perl
COPY . /app/bystro-perl/

# Install build dependencies
RUN dzil authordeps --missing | cpanm --quiet
RUN cpm install -g --show-build-log-on-failure $(dzil authordeps --missing)

# install Bystro package dependencies
RUN dzil listdeps --missing | cpanm --quiet
RUN cpm install -g --show-build-log-on-failure $(dzil listdeps --missing)

# Build Bystro package and
# Test and Install Bystro
RUN dzil install

RUN rm -rf /app/perl-deps
Expand Down
9 changes: 7 additions & 2 deletions perl/cpanfile
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ requires "Types::Path::Tiny" => "0";
requires "Types::Standard" => "0";
requires "YAML::XS" => "0";
requires "namespace::autoclean" => "0";
requires "perl" => "v5.16.0";
requires "strict" => "0";
requires "warnings" => "0";

Expand All @@ -64,6 +65,10 @@ on 'configure' => sub {
};

on 'develop' => sub {
requires "Test::More" => "0";
requires "Test::Version" => "1";
requires "Test::CPAN::Meta" => "0";
requires "Test::EOF" => "0";
requires "Test::EOL" => "0";
requires "Test::MinimumVersion" => "0";
requires "Test::More" => "0.88";
requires "Test::NoTabs" => "0";
};
39 changes: 22 additions & 17 deletions perl/dist.ini
Original file line number Diff line number Diff line change
Expand Up @@ -23,38 +23,43 @@ match = .*\.gz$
[ExecDir]
dir = bin

[PruneCruft]
[ShareDir]

[ManifestSkip]
[PruneCruft]

[MetaYAML]
[MakeMaker]

[CPANFile]
[Manifest]

[CopyFilesFromBuild::Filtered]
copy = cpanfile
[ManifestSkip]

[License]

[Readme]

[MakeMaker]
[MetaYAML]

[ShareDir]
[CPANFile]

[Manifest]
[ConfirmRelease]

[TestRelease]
[AutoPrereqs]

[ConfirmRelease]
; Tests
[MetaTests]

[Test::ReportPrereqs]
verify_prereqs = 1

[Test::Version]
[Test::NoTabs]

[AutoPrereqs]
[Test::EOL]

[RemovePrereqs]
remove = perl
remove = Sys::Info
remove = Sys::Info::Constants
[Test::EOF]

[Test::MinimumVersion]

[TestRelease]

[CopyFilesFromBuild::Filtered]
copy = cpanfile
Binary file removed perl/t/db/index/test/data.mdb
Binary file not shown.
32 changes: 32 additions & 0 deletions perl/t/lib/TestUtils.pm
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package TestUtils;

use 5.10.0;
use strict;
use warnings;

use Exporter 'import';
use Path::Tiny;
use YAML::XS qw/LoadFile/;

use Type::Params qw(compile);
use Types::Standard qw(HashRef);
use Types::Common::String qw(NonEmptySimpleStr);

our @EXPORT_OK = qw/ UpdateConfigAttrs /;

sub UpdateConfigAttrs {
state $check = compile( NonEmptySimpleStr, HashRef );
my ( $file, $href ) = $check->(@_);

# load config yaml
my $config = LoadFile($file);

# update directory keys with new location
for my $key ( keys %{$href} ) {
$config->{$key} = $href->{$key};
}

return $config;
}

1;
4 changes: 2 additions & 2 deletions perl/t/tracks/base/01-convert.t
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
#!/usr/bin/env perl
use 5.10.0;
use strict;
use warnings;

use Test::More;
use Mouse 2;

use Seq::Tracks::Base::Types;
use DDP;
use Scalar::Util qw/looks_like_number/;

my $converter = Seq::Tracks::Base::Types->new();
Expand Down
1 change: 0 additions & 1 deletion perl/t/tracks/base/02-convert-pack.t
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ use strict;
use warnings;

use Test::More;
use DDP;

use Data::MessagePack;
use Seq::Tracks::Base::Types;
Expand Down
Binary file removed perl/t/tracks/base/db/index/test_meta/data.mdb
Binary file not shown.
Binary file not shown.
10 changes: 6 additions & 4 deletions perl/t/tracks/base/normalizeWantedChr.t
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,22 @@ use strict;
use warnings;

use Test::More;
use Path::Tiny;

use Seq::Tracks::Base;
use Seq::DBManager;
use Seq::Output::Delimiters;
use DDP;
# use Path::Tiny qw/path/;

# use DDP;
# use Scalar::Util qw/looks_like_number/;
# use YAML::XS qw/LoadFile/;
# use DDP;
# use Seq::Tracks::Gene::Site::SiteTypeMap;
# use Seq::Tracks::Reference::MapBases;

# my $baseMapper = Seq::Tracks::Reference::MapBases->new();
# my $siteTypes = Seq::Tracks::Gene::Site::SiteTypeMap->new();
Seq::DBManager::initialize( { databaseDir => './t/tracks/base/db/index', } );

Seq::DBManager::initialize( { databaseDir => Path::Tiny->tempdir() } );

my $seq = Seq::Tracks::Base->new(
{
Expand Down
3 changes: 2 additions & 1 deletion perl/t/tracks/base/types.t
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@ use 5.10.0;
use strict;
use warnings;

use Seq::Tracks::Base::Types;
use Test::More;

use Seq::Tracks::Base::Types;

my $rounder = Seq::Tracks::Base::Types->new();

my $rounded = $rounder->convert( "2.032", "number(2)" );
Expand Down
5 changes: 3 additions & 2 deletions perl/t/tracks/build/02-local-files.t
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@ use 5.10.0;
use strict;
use warnings;

use Seq::Tracks::Build::LocalFilesPaths;
use Path::Tiny;
use Test::More;
use Path::Tiny;

use Seq::Tracks::Build::LocalFilesPaths;

my $localPaths = Seq::Tracks::Build::LocalFilesPaths->new();

Expand Down
Loading