From 1d227ba2fdc2c1aa8180dde980df3ffcfe7c9342 Mon Sep 17 00:00:00 2001 From: gromdimon Date: Tue, 17 Sep 2024 10:36:38 +0200 Subject: [PATCH 01/10] Uncomment workflows --- ...{docker-build.yml.txt => docker-build.yml} | 0 ...eanup-pr.yml.txt => docker-cleanup-pr.yml} | 0 ...ed.yml.txt => docker-cleanup-untagged.yml} | 0 .gitignore | 4 + tests/seqvar/test_auto_pm2_ba1_bs1_bs2.py | 123 ++++++++++++++++++ 5 files changed, 127 insertions(+) rename .github/workflows/{docker-build.yml.txt => docker-build.yml} (100%) rename .github/workflows/{docker-cleanup-pr.yml.txt => docker-cleanup-pr.yml} (100%) rename .github/workflows/{docker-cleanup-untagged.yml.txt => docker-cleanup-untagged.yml} (100%) diff --git a/.github/workflows/docker-build.yml.txt b/.github/workflows/docker-build.yml similarity index 100% rename from .github/workflows/docker-build.yml.txt rename to .github/workflows/docker-build.yml diff --git a/.github/workflows/docker-cleanup-pr.yml.txt b/.github/workflows/docker-cleanup-pr.yml similarity index 100% rename from .github/workflows/docker-cleanup-pr.yml.txt rename to .github/workflows/docker-cleanup-pr.yml diff --git a/.github/workflows/docker-cleanup-untagged.yml.txt b/.github/workflows/docker-cleanup-untagged.yml similarity index 100% rename from .github/workflows/docker-cleanup-untagged.yml.txt rename to .github/workflows/docker-cleanup-untagged.yml diff --git a/.gitignore b/.gitignore index f1d529a..e73fa36 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,10 @@ cache/** # Prediction file prediction.json +# Seqrepo archives +seqrepo.tar.gz +seqrepo_master.tar.gz + # DS_Store file .DS_Store diff --git a/tests/seqvar/test_auto_pm2_ba1_bs1_bs2.py b/tests/seqvar/test_auto_pm2_ba1_bs1_bs2.py index 6151619..06c2f2b 100644 --- a/tests/seqvar/test_auto_pm2_ba1_bs1_bs2.py +++ b/tests/seqvar/test_auto_pm2_ba1_bs1_bs2.py @@ -19,10 +19,12 @@ AutoACMGStrength, ) from src.defs.exceptions import AlgorithmError, MissingDataError +from src.defs.exceptions import AlgorithmError, MissingDataError from src.defs.genome_builds import GenomeRelease from src.defs.seqvar import SeqVar from src.seqvar.auto_pm2_ba1_bs1_bs2 import AutoPM2BA1BS1BS2 from src.utils import SeqVarTranscriptsHelper +from src.utils import SeqVarTranscriptsHelper @pytest.fixture @@ -258,6 +260,40 @@ def test_get_allele_cond_clingen_dosage( assert result == AlleleCondition.Dominant +@patch.object(SeqVarTranscriptsHelper, "initialize") +@patch.object(SeqVarTranscriptsHelper, "get_ts_info") +def gene_info(): + # Base mock structure for gene information responses + return { + "Gene123": GeneInfo( + clingen=Clingen( + haploinsufficiencyScore=None # No score set initially + ), + domino=Domino(score=None), # No score set initially + decipherHi=DecipherHi(pHi=None), # No score set initially + ) + } + + +@patch.object(SeqVarTranscriptsHelper, "initialize") +@patch.object(SeqVarTranscriptsHelper, "get_ts_info") +@patch.object(AnnonarsClient, "get_gene_info") +def test_get_allele_cond_clingen_dosage( + mock_get_gene_info, mock_get_ts_info, mock_initialize, auto_pm2ba1bs1bs2, seqvar, gene_info +): + # Modify gene_info for the test case to simulate dominant condition + gene_info[ + "Gene123" + ].clingen.haploinsufficiencyScore = "CLINGEN_DOSAGE_SCORE_SUFFICIENT_EVIDENCE_AVAILABLE" + mock_get_gene_info.return_value = AnnonarsGeneResponse(genes=Genes(root=gene_info)) + + mock_get_ts_info.return_value = (None, MagicMock(geneId="Gene123"), None, None, None) + mock_initialize.return_value = None + + result = auto_pm2ba1bs1bs2._get_allele_cond(seqvar) + assert result == AlleleCondition.Dominant + + @patch.object(SeqVarTranscriptsHelper, "initialize") @patch.object(SeqVarTranscriptsHelper, "get_ts_info") @patch.object(AnnonarsClient, "get_gene_info") @@ -275,6 +311,38 @@ def test_get_allele_cond_domino_data( assert result == AlleleCondition.Dominant +@pytest.mark.parametrize( + "clingen_score, domino_score, decipher_score, expected_condition", + [ + ( + "CLINGEN_DOSAGE_SCORE_SUFFICIENT_EVIDENCE_AVAILABLE", + None, + None, + AlleleCondition.Dominant, + ), + ("CLINGEN_DOSAGE_SCORE_RECESSIVE", None, None, AlleleCondition.Recessive), + ("CLINGEN_DOSAGE_SCORE_NO_EVIDENCE_AVAILABLE", 0.6, None, AlleleCondition.Dominant), + (None, 0.1, None, AlleleCondition.Recessive), + (None, None, 0.95, AlleleCondition.Dominant), + (None, None, 0.85, AlleleCondition.Unknown), + ], +) +@patch.object(SeqVarTranscriptsHelper, "initialize") +@patch.object(SeqVarTranscriptsHelper, "get_ts_info") +def test_get_allele_cond_domino_data( + mock_get_gene_info, mock_get_ts_info, mock_initialize, auto_pm2ba1bs1bs2, seqvar, gene_info +): + # Modify gene_info for the test case to simulate Domino data + gene_info["Gene123"].domino.score = 0.6 + mock_get_gene_info.return_value = AnnonarsGeneResponse(genes=Genes(root=gene_info)) + + mock_get_ts_info.return_value = (None, MagicMock(geneId="Gene123"), None, None, None) + mock_initialize.return_value = None + + result = auto_pm2ba1bs1bs2._get_allele_cond(seqvar) + assert result == AlleleCondition.Dominant + + @pytest.mark.parametrize( "clingen_score, domino_score, decipher_score, expected_condition", [ @@ -294,10 +362,13 @@ def test_get_allele_cond_domino_data( @patch.object(SeqVarTranscriptsHelper, "initialize") @patch.object(SeqVarTranscriptsHelper, "get_ts_info") @patch.object(AnnonarsClient, "get_gene_info") +def test_get_allele_cond_various_conditions( def test_get_allele_cond_various_conditions( mock_get_gene_info, mock_get_ts_info, mock_initialize, + mock_get_ts_info, + mock_initialize, auto_pm2ba1bs1bs2, seqvar, clingen_score, @@ -320,6 +391,27 @@ def test_get_allele_cond_various_conditions( result = auto_pm2ba1bs1bs2._get_allele_cond(seqvar) assert result == expected_condition + seqvar, + clingen_score, + domino_score, + decipher_score, + expected_condition, + gene_info, +): + # Modify gene_info based on parameters + if clingen_score: + gene_info["Gene123"].clingen.haploinsufficiencyScore = clingen_score + if domino_score is not None: + gene_info["Gene123"].domino.score = domino_score + if decipher_score is not None: + gene_info["Gene123"].decipherHi.pHi = decipher_score + + mock_get_gene_info.return_value = AnnonarsGeneResponse(genes=Genes(root=gene_info)) + mock_get_ts_info.return_value = (None, MagicMock(geneId="Gene123"), None, None, None) + mock_initialize.return_value = None + + result = auto_pm2ba1bs1bs2._get_allele_cond(seqvar) + assert result == expected_condition @patch("src.utils.SeqVarTranscriptsHelper") @@ -330,6 +422,13 @@ def test_get_allele_cond_no_gene_found(mock_seqvar_transcripts_helper, auto_pm2b with pytest.raises(AlgorithmError, match="No gene found for the transcript."): auto_pm2ba1bs1bs2._get_allele_cond(seqvar) +def test_get_allele_cond_no_gene_found(mock_seqvar_transcripts_helper, auto_pm2ba1bs1bs2, seqvar): + mock_helper_instance = mock_seqvar_transcripts_helper.return_value + mock_helper_instance.initialize.return_value = None + mock_helper_instance.get_ts_info.return_value = (None, None, None, None, None) + + with pytest.raises(AlgorithmError, match="No gene found for the transcript."): + auto_pm2ba1bs1bs2._get_allele_cond(seqvar) # ========== _check_zyg =========== @@ -414,8 +513,22 @@ def test_bs2_not_applicable(auto_pm2ba1bs1bs2, var_data): @pytest.fixture def seqvar_mt(): return SeqVar(genome_release=GenomeRelease.GRCh38, chrom="MT", pos=1000, delete="A", insert="G") +def seqvar_mt(): + return SeqVar(genome_release=GenomeRelease.GRCh38, chrom="MT", pos=1000, delete="A", insert="G") +@patch.object(AutoPM2BA1BS1BS2, "_get_af", return_value=0.0001) +@patch.object(AutoPM2BA1BS1BS2, "_ba1_exception", return_value=False) +@patch.object(AutoPM2BA1BS1BS2, "_bs2_not_applicable", return_value=False) +@patch.object(AutoPM2BA1BS1BS2, "_check_zyg", return_value=True) +def test_verify_pm2ba1bs1bs2( + mock_get_af, + mock_ba1_exception, + mock_bs2_na, + mock_check_zyg, + auto_pm2ba1bs1bs2, + seqvar, + var_data, @patch.object(AutoPM2BA1BS1BS2, "_get_af", return_value=0.0001) @patch.object(AutoPM2BA1BS1BS2, "_ba1_exception", return_value=False) @patch.object(AutoPM2BA1BS1BS2, "_bs2_not_applicable", return_value=False) @@ -434,6 +547,16 @@ def test_verify_pm2ba1bs1bs2( assert "PM2 is met" in comment +@patch.object(AutoPM2BA1BS1BS2, "_get_m_af", return_value=0.00002) +def test_verify_pm2ba1bs1bs2_mitochondrial(mock_get_m_af, auto_pm2ba1bs1bs2, seqvar_mt, var_data): + result, comment = auto_pm2ba1bs1bs2.verify_pm2ba1bs1bs2(seqvar_mt, var_data) + assert result.PM2 is True + assert "Allele frequency <= 0.002%: PM2 is met" in comment + result, comment = auto_pm2ba1bs1bs2.verify_pm2ba1bs1bs2(seqvar, var_data) + assert result.PM2 is True + assert "PM2 is met" in comment + + @patch.object(AutoPM2BA1BS1BS2, "_get_m_af", return_value=0.00002) def test_verify_pm2ba1bs1bs2_mitochondrial(mock_get_m_af, auto_pm2ba1bs1bs2, seqvar_mt, var_data): result, comment = auto_pm2ba1bs1bs2.verify_pm2ba1bs1bs2(seqvar_mt, var_data) From a376e8287df4faea95d82e03747621d1099bf047 Mon Sep 17 00:00:00 2001 From: gromdimon Date: Tue, 17 Sep 2024 10:46:38 +0200 Subject: [PATCH 02/10] Revert PM2 tests --- tests/seqvar/test_auto_pm2_ba1_bs1_bs2.py | 123 ---------------------- 1 file changed, 123 deletions(-) diff --git a/tests/seqvar/test_auto_pm2_ba1_bs1_bs2.py b/tests/seqvar/test_auto_pm2_ba1_bs1_bs2.py index 06c2f2b..6151619 100644 --- a/tests/seqvar/test_auto_pm2_ba1_bs1_bs2.py +++ b/tests/seqvar/test_auto_pm2_ba1_bs1_bs2.py @@ -19,12 +19,10 @@ AutoACMGStrength, ) from src.defs.exceptions import AlgorithmError, MissingDataError -from src.defs.exceptions import AlgorithmError, MissingDataError from src.defs.genome_builds import GenomeRelease from src.defs.seqvar import SeqVar from src.seqvar.auto_pm2_ba1_bs1_bs2 import AutoPM2BA1BS1BS2 from src.utils import SeqVarTranscriptsHelper -from src.utils import SeqVarTranscriptsHelper @pytest.fixture @@ -260,40 +258,6 @@ def test_get_allele_cond_clingen_dosage( assert result == AlleleCondition.Dominant -@patch.object(SeqVarTranscriptsHelper, "initialize") -@patch.object(SeqVarTranscriptsHelper, "get_ts_info") -def gene_info(): - # Base mock structure for gene information responses - return { - "Gene123": GeneInfo( - clingen=Clingen( - haploinsufficiencyScore=None # No score set initially - ), - domino=Domino(score=None), # No score set initially - decipherHi=DecipherHi(pHi=None), # No score set initially - ) - } - - -@patch.object(SeqVarTranscriptsHelper, "initialize") -@patch.object(SeqVarTranscriptsHelper, "get_ts_info") -@patch.object(AnnonarsClient, "get_gene_info") -def test_get_allele_cond_clingen_dosage( - mock_get_gene_info, mock_get_ts_info, mock_initialize, auto_pm2ba1bs1bs2, seqvar, gene_info -): - # Modify gene_info for the test case to simulate dominant condition - gene_info[ - "Gene123" - ].clingen.haploinsufficiencyScore = "CLINGEN_DOSAGE_SCORE_SUFFICIENT_EVIDENCE_AVAILABLE" - mock_get_gene_info.return_value = AnnonarsGeneResponse(genes=Genes(root=gene_info)) - - mock_get_ts_info.return_value = (None, MagicMock(geneId="Gene123"), None, None, None) - mock_initialize.return_value = None - - result = auto_pm2ba1bs1bs2._get_allele_cond(seqvar) - assert result == AlleleCondition.Dominant - - @patch.object(SeqVarTranscriptsHelper, "initialize") @patch.object(SeqVarTranscriptsHelper, "get_ts_info") @patch.object(AnnonarsClient, "get_gene_info") @@ -311,38 +275,6 @@ def test_get_allele_cond_domino_data( assert result == AlleleCondition.Dominant -@pytest.mark.parametrize( - "clingen_score, domino_score, decipher_score, expected_condition", - [ - ( - "CLINGEN_DOSAGE_SCORE_SUFFICIENT_EVIDENCE_AVAILABLE", - None, - None, - AlleleCondition.Dominant, - ), - ("CLINGEN_DOSAGE_SCORE_RECESSIVE", None, None, AlleleCondition.Recessive), - ("CLINGEN_DOSAGE_SCORE_NO_EVIDENCE_AVAILABLE", 0.6, None, AlleleCondition.Dominant), - (None, 0.1, None, AlleleCondition.Recessive), - (None, None, 0.95, AlleleCondition.Dominant), - (None, None, 0.85, AlleleCondition.Unknown), - ], -) -@patch.object(SeqVarTranscriptsHelper, "initialize") -@patch.object(SeqVarTranscriptsHelper, "get_ts_info") -def test_get_allele_cond_domino_data( - mock_get_gene_info, mock_get_ts_info, mock_initialize, auto_pm2ba1bs1bs2, seqvar, gene_info -): - # Modify gene_info for the test case to simulate Domino data - gene_info["Gene123"].domino.score = 0.6 - mock_get_gene_info.return_value = AnnonarsGeneResponse(genes=Genes(root=gene_info)) - - mock_get_ts_info.return_value = (None, MagicMock(geneId="Gene123"), None, None, None) - mock_initialize.return_value = None - - result = auto_pm2ba1bs1bs2._get_allele_cond(seqvar) - assert result == AlleleCondition.Dominant - - @pytest.mark.parametrize( "clingen_score, domino_score, decipher_score, expected_condition", [ @@ -362,13 +294,10 @@ def test_get_allele_cond_domino_data( @patch.object(SeqVarTranscriptsHelper, "initialize") @patch.object(SeqVarTranscriptsHelper, "get_ts_info") @patch.object(AnnonarsClient, "get_gene_info") -def test_get_allele_cond_various_conditions( def test_get_allele_cond_various_conditions( mock_get_gene_info, mock_get_ts_info, mock_initialize, - mock_get_ts_info, - mock_initialize, auto_pm2ba1bs1bs2, seqvar, clingen_score, @@ -391,27 +320,6 @@ def test_get_allele_cond_various_conditions( result = auto_pm2ba1bs1bs2._get_allele_cond(seqvar) assert result == expected_condition - seqvar, - clingen_score, - domino_score, - decipher_score, - expected_condition, - gene_info, -): - # Modify gene_info based on parameters - if clingen_score: - gene_info["Gene123"].clingen.haploinsufficiencyScore = clingen_score - if domino_score is not None: - gene_info["Gene123"].domino.score = domino_score - if decipher_score is not None: - gene_info["Gene123"].decipherHi.pHi = decipher_score - - mock_get_gene_info.return_value = AnnonarsGeneResponse(genes=Genes(root=gene_info)) - mock_get_ts_info.return_value = (None, MagicMock(geneId="Gene123"), None, None, None) - mock_initialize.return_value = None - - result = auto_pm2ba1bs1bs2._get_allele_cond(seqvar) - assert result == expected_condition @patch("src.utils.SeqVarTranscriptsHelper") @@ -422,13 +330,6 @@ def test_get_allele_cond_no_gene_found(mock_seqvar_transcripts_helper, auto_pm2b with pytest.raises(AlgorithmError, match="No gene found for the transcript."): auto_pm2ba1bs1bs2._get_allele_cond(seqvar) -def test_get_allele_cond_no_gene_found(mock_seqvar_transcripts_helper, auto_pm2ba1bs1bs2, seqvar): - mock_helper_instance = mock_seqvar_transcripts_helper.return_value - mock_helper_instance.initialize.return_value = None - mock_helper_instance.get_ts_info.return_value = (None, None, None, None, None) - - with pytest.raises(AlgorithmError, match="No gene found for the transcript."): - auto_pm2ba1bs1bs2._get_allele_cond(seqvar) # ========== _check_zyg =========== @@ -513,22 +414,8 @@ def test_bs2_not_applicable(auto_pm2ba1bs1bs2, var_data): @pytest.fixture def seqvar_mt(): return SeqVar(genome_release=GenomeRelease.GRCh38, chrom="MT", pos=1000, delete="A", insert="G") -def seqvar_mt(): - return SeqVar(genome_release=GenomeRelease.GRCh38, chrom="MT", pos=1000, delete="A", insert="G") -@patch.object(AutoPM2BA1BS1BS2, "_get_af", return_value=0.0001) -@patch.object(AutoPM2BA1BS1BS2, "_ba1_exception", return_value=False) -@patch.object(AutoPM2BA1BS1BS2, "_bs2_not_applicable", return_value=False) -@patch.object(AutoPM2BA1BS1BS2, "_check_zyg", return_value=True) -def test_verify_pm2ba1bs1bs2( - mock_get_af, - mock_ba1_exception, - mock_bs2_na, - mock_check_zyg, - auto_pm2ba1bs1bs2, - seqvar, - var_data, @patch.object(AutoPM2BA1BS1BS2, "_get_af", return_value=0.0001) @patch.object(AutoPM2BA1BS1BS2, "_ba1_exception", return_value=False) @patch.object(AutoPM2BA1BS1BS2, "_bs2_not_applicable", return_value=False) @@ -547,16 +434,6 @@ def test_verify_pm2ba1bs1bs2( assert "PM2 is met" in comment -@patch.object(AutoPM2BA1BS1BS2, "_get_m_af", return_value=0.00002) -def test_verify_pm2ba1bs1bs2_mitochondrial(mock_get_m_af, auto_pm2ba1bs1bs2, seqvar_mt, var_data): - result, comment = auto_pm2ba1bs1bs2.verify_pm2ba1bs1bs2(seqvar_mt, var_data) - assert result.PM2 is True - assert "Allele frequency <= 0.002%: PM2 is met" in comment - result, comment = auto_pm2ba1bs1bs2.verify_pm2ba1bs1bs2(seqvar, var_data) - assert result.PM2 is True - assert "PM2 is met" in comment - - @patch.object(AutoPM2BA1BS1BS2, "_get_m_af", return_value=0.00002) def test_verify_pm2ba1bs1bs2_mitochondrial(mock_get_m_af, auto_pm2ba1bs1bs2, seqvar_mt, var_data): result, comment = auto_pm2ba1bs1bs2.verify_pm2ba1bs1bs2(seqvar_mt, var_data) From cab2708e407174153f414417719c8ca68092a001 Mon Sep 17 00:00:00 2001 From: gromdimon Date: Tue, 17 Sep 2024 10:56:32 +0200 Subject: [PATCH 03/10] modify docker ignore --- .dockerignore | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.dockerignore b/.dockerignore index 349e2c3..c1dff00 100644 --- a/.dockerignore +++ b/.dockerignore @@ -22,18 +22,10 @@ temp/ tmp/ docs/ *.md -dist/ build/ *.egg-info *.egg -site/ tests/ *.pyc *.env src/bench/ -.coverage -.readthedocs.yaml -codecov.yml -comparison.log -coverage.lcov -LICENSE From 10f02edc06ada6cae34528e58bd12946259254ce Mon Sep 17 00:00:00 2001 From: gromdimon Date: Tue, 17 Sep 2024 10:58:15 +0200 Subject: [PATCH 04/10] utils/docker/Dockerfile --- Dockerfile => utils/docker/Dockerfile | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Dockerfile => utils/docker/Dockerfile (100%) diff --git a/Dockerfile b/utils/docker/Dockerfile similarity index 100% rename from Dockerfile rename to utils/docker/Dockerfile From 275de7a2af8c18fefc6dbfcb3e38e13a46ae85ef Mon Sep 17 00:00:00 2001 From: gromdimon Date: Tue, 17 Sep 2024 11:01:34 +0200 Subject: [PATCH 05/10] remove even more files from dockerignore --- .dockerignore | 9 --------- 1 file changed, 9 deletions(-) diff --git a/.dockerignore b/.dockerignore index c1dff00..398352c 100644 --- a/.dockerignore +++ b/.dockerignore @@ -2,9 +2,6 @@ .ipynb_checkpoints .vscode .idea -.git -.gitignore -.gitattributes .mypy_cache .pytest_cache __pycache__ @@ -15,16 +12,10 @@ cache/** src/bench/tmp/*.csv *.~lock.* .DS_Store -*.json -*.so -*.log -temp/ tmp/ docs/ *.md build/ -*.egg-info -*.egg tests/ *.pyc *.env From 6447e0bc5c9a46452e1393c5d92e8d21d0f26b75 Mon Sep 17 00:00:00 2001 From: gromdimon Date: Tue, 17 Sep 2024 11:15:37 +0200 Subject: [PATCH 06/10] release-please workflow --- .github/workflows/release-please.yml | 61 ++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 .github/workflows/release-please.yml diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml new file mode 100644 index 0000000..bd68ba4 --- /dev/null +++ b/.github/workflows/release-please.yml @@ -0,0 +1,61 @@ +name: Release + +on: + push: + branches: + - main + +env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }} + +jobs: + release-please: + runs-on: ubuntu-latest + outputs: + release_created: ${{ steps.release.outputs.release_created }} + release_name: ${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }}.${{ steps.release.outputs.patch }} + steps: + - name: Create GitHub release + id: release + uses: GoogleCloudPlatform/release-please-action@v4 + with: + token: ${{ secrets.BOT_TOKEN }} + + Container-Release: + needs: release-please + runs-on: ubuntu-latest + if: ${{ needs.release-please.outputs.release_created }} + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + lfs: 'true' + submodules: recursive + + - name: Log in to the Container registry + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + tags: | + type=raw,value=latest,enable={{is_default_branch}} + type=semver,pattern={{version}},value=${{ needs.release-please.outputs.release_name }} + type=semver,pattern={{major}}.{{minor}},value=${{ needs.release-please.outputs.release_name }} + type=semver,pattern={{major}},value=${{ needs.release-please.outputs.release_name }} + + - name: Build and push Docker image + uses: docker/build-push-action@v6 + with: + context: . + file: utils/docker/Dockerfile + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + push: true From 0646a4d08f123c78714cb3d5e2f10c35126c9c55 Mon Sep 17 00:00:00 2001 From: gromdimon Date: Tue, 17 Sep 2024 11:26:36 +0200 Subject: [PATCH 07/10] change name --- .github/workflows/docker-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 04c93d8..b482486 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -14,7 +14,7 @@ name: Docker Build env: REGISTRY: ghcr.io - IMAGE_NAME: auto-acmg + IMAGE_NAME: auto_acmg jobs: Image-Build-Push: From 7d8552dcf57ecb5a763bf6e84ec0134a4fbb6e3f Mon Sep 17 00:00:00 2001 From: gromdimon Date: Tue, 17 Sep 2024 11:27:26 +0200 Subject: [PATCH 08/10] change name v2 --- .github/workflows/docker-cleanup-pr.yml | 2 +- .github/workflows/docker-cleanup-untagged.yml | 2 +- .github/workflows/release-please.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/docker-cleanup-pr.yml b/.github/workflows/docker-cleanup-pr.yml index 74d35f0..3faddf3 100644 --- a/.github/workflows/docker-cleanup-pr.yml +++ b/.github/workflows/docker-cleanup-pr.yml @@ -13,7 +13,7 @@ jobs: - uses: bots-house/ghcr-delete-image-action@v1.1.0 with: owner: bihealth - name: auto-acmg + name: auto_acmg token: ${{ secrets.GITHUB_TOKEN }} tag: pr-${{github.event.pull_request.number}} continue-on-error: true diff --git a/.github/workflows/docker-cleanup-untagged.yml b/.github/workflows/docker-cleanup-untagged.yml index 505c8b3..f8c03c9 100644 --- a/.github/workflows/docker-cleanup-untagged.yml +++ b/.github/workflows/docker-cleanup-untagged.yml @@ -13,6 +13,6 @@ jobs: - uses: bots-house/ghcr-delete-image-action@v1.1.0 with: owner: bihealth - name: auto-acmg + name: auto_acmg token: ${{ secrets.GITHUB_TOKEN }} untagged-keep-latest: 3 diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index bd68ba4..0a791f8 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -7,7 +7,7 @@ on: env: REGISTRY: ghcr.io - IMAGE_NAME: ${{ github.repository }} + IMAGE_NAME: auto_acmg jobs: release-please: From 2e3265a22deea3cc58197c40ac0b46d4d1651a9a Mon Sep 17 00:00:00 2001 From: gromdimon Date: Tue, 17 Sep 2024 11:33:44 +0200 Subject: [PATCH 09/10] image name: github.repository --- .github/workflows/docker-build.yml | 2 +- .github/workflows/docker-cleanup-pr.yml | 2 +- .github/workflows/docker-cleanup-untagged.yml | 2 +- .github/workflows/release-please.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index b482486..99103fe 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -14,7 +14,7 @@ name: Docker Build env: REGISTRY: ghcr.io - IMAGE_NAME: auto_acmg + IMAGE_NAME: ${{ github.repository }} jobs: Image-Build-Push: diff --git a/.github/workflows/docker-cleanup-pr.yml b/.github/workflows/docker-cleanup-pr.yml index 3faddf3..74d35f0 100644 --- a/.github/workflows/docker-cleanup-pr.yml +++ b/.github/workflows/docker-cleanup-pr.yml @@ -13,7 +13,7 @@ jobs: - uses: bots-house/ghcr-delete-image-action@v1.1.0 with: owner: bihealth - name: auto_acmg + name: auto-acmg token: ${{ secrets.GITHUB_TOKEN }} tag: pr-${{github.event.pull_request.number}} continue-on-error: true diff --git a/.github/workflows/docker-cleanup-untagged.yml b/.github/workflows/docker-cleanup-untagged.yml index f8c03c9..505c8b3 100644 --- a/.github/workflows/docker-cleanup-untagged.yml +++ b/.github/workflows/docker-cleanup-untagged.yml @@ -13,6 +13,6 @@ jobs: - uses: bots-house/ghcr-delete-image-action@v1.1.0 with: owner: bihealth - name: auto_acmg + name: auto-acmg token: ${{ secrets.GITHUB_TOKEN }} untagged-keep-latest: 3 diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index 0a791f8..bd68ba4 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -7,7 +7,7 @@ on: env: REGISTRY: ghcr.io - IMAGE_NAME: auto_acmg + IMAGE_NAME: ${{ github.repository }} jobs: release-please: From a93d9ca01f630b80374826e30865a8ade668ea7a Mon Sep 17 00:00:00 2001 From: gromdimon Date: Tue, 17 Sep 2024 11:44:59 +0200 Subject: [PATCH 10/10] change release-please workflow --- .github/workflows/release-please.yml | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index bd68ba4..9ada3ae 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -1,31 +1,17 @@ name: Release on: - push: - branches: - - main + release: + types: [created] env: REGISTRY: ghcr.io IMAGE_NAME: ${{ github.repository }} jobs: - release-please: - runs-on: ubuntu-latest - outputs: - release_created: ${{ steps.release.outputs.release_created }} - release_name: ${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }}.${{ steps.release.outputs.patch }} - steps: - - name: Create GitHub release - id: release - uses: GoogleCloudPlatform/release-please-action@v4 - with: - token: ${{ secrets.BOT_TOKEN }} Container-Release: - needs: release-please runs-on: ubuntu-latest - if: ${{ needs.release-please.outputs.release_created }} steps: - name: Checkout repository uses: actions/checkout@v4 @@ -47,9 +33,7 @@ jobs: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} tags: | type=raw,value=latest,enable={{is_default_branch}} - type=semver,pattern={{version}},value=${{ needs.release-please.outputs.release_name }} - type=semver,pattern={{major}}.{{minor}},value=${{ needs.release-please.outputs.release_name }} - type=semver,pattern={{major}},value=${{ needs.release-please.outputs.release_name }} + type=ref,event=branch - name: Build and push Docker image uses: docker/build-push-action@v6