diff --git a/.github/workflows/integration-test.yml b/.github/workflows/integration-test.yml deleted file mode 100644 index b8e85c22e2..0000000000 --- a/.github/workflows/integration-test.yml +++ /dev/null @@ -1,163 +0,0 @@ -name: integration test - -on: workflow_dispatch - -jobs: - # phase 1 - list: - env: - s3_bucket: s3://openproblems-data/resources_test/ - runs-on: ubuntu-latest - - outputs: - component_matrix: ${{ steps.set_matrix.outputs.components }} - workflow_matrix: ${{ steps.set_matrix.outputs.workflows }} - cache_key: ${{ steps.cache.outputs.cache_key }} - - steps: - - uses: actions/checkout@v4 - - - uses: viash-io/viash-actions/setup@v5 - - - uses: viash-io/viash-actions/project/sync-and-cache-s3@v5 - id: cache - with: - s3_bucket: $s3_bucket - dest_path: resources_test - cache_key_prefix: resources_test__ - - - name: Remove target folder from .gitignore - run: | - # allow publishing the target folder - sed -i 's#^/target/$##g' .gitignore - - - uses: viash-io/viash-actions/ns-build@v5 - with: - config_mod: .functionality.version := 'integration_build' - parallel: true - - - name: Deploy to target branch - uses: peaceiris/actions-gh-pages@v4 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: . - publish_branch: integration_build - exclude_assets: '' - - - id: ns_list - uses: viash-io/viash-actions/ns-list@v5 - with: - platform: docker - src: src - format: json - - - id: set_matrix - run: | - echo "components=$(jq -c '[ .[] | - { - "name": (.functionality.namespace + (.platforms | map(select(.type == "docker"))[0].namespace_separator) + .functionality.name), - "config": .info.config, - "dir": .info.config | capture("^(?.*\/)").dir - } - ]' ${{ steps.ns_list.outputs.output_file }} )" >> $GITHUB_OUTPUT - - echo "workflows=$(jq -c '[ .[] | . as $config | (.functionality.test_resources // [])[] | select(.type == "nextflow_script", .entrypoint) | - { - "name": ($config.functionality.namespace + "/" + $config.functionality.name), - "main_script": (($config.info.config | capture("^(?.*\/)").dir) + "/" + .path), - "entry": .entrypoint, - "config": $config.info.config - } - ] | unique' ${{ steps.ns_list.outputs.output_file }} )" >> $GITHUB_OUTPUT - - # phase 2 - build: - needs: list - - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - component: ${{ fromJson(needs.list.outputs.component_matrix) }} - - steps: - # Remove unnecessary files to free up space. Otherwise, we get 'no space left on device.' - - uses: data-intuitive/reclaim-the-bytes@v2 - - - uses: actions/checkout@v4 - - - uses: viash-io/viash-actions/setup@v5 - - - name: Build container - uses: viash-io/viash-actions/ns-build@v5 - with: - config_mod: .functionality.version := 'integration_build' - setup: build - src: ${{ matrix.component.dir }} - - - name: Login to container registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ secrets.GTHB_USER }} - password: ${{ secrets.GTHB_PAT }} - - - name: Push container - uses: viash-io/viash-actions/ns-build@v5 - with: - config_mod: .functionality.version := 'integration_build' - platform: docker - src: ${{ matrix.component.dir }} - setup: push - - ################################### - # phase 3 - integration_test: - needs: [ build, list ] - if: "${{ needs.list.outputs.workflow_matrix != '[]' }}" - - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - component: ${{ fromJson(needs.list.outputs.workflow_matrix) }} - - steps: - # Remove unnecessary files to free up space. Otherwise, we get 'no space left on device.' - - uses: data-intuitive/reclaim-the-bytes@v2 - - - uses: actions/checkout@v4 - - - uses: viash-io/viash-actions/setup@v5 - - - uses: nf-core/setup-nextflow@v2.0.0 - - # build target dir - # use containers from integration_build branch, hopefully these are available - - name: Build target dir - uses: viash-io/viash-actions/ns-build@v5 - with: - config_mod: ".functionality.version := 'integration_build'" - parallel: true - - # use cache - - name: Cache resources data - uses: actions/cache@v4 - timeout-minutes: 5 - with: - path: resources_test - key: ${{ needs.list.outputs.cache_key }} - fail-on-cache-miss: true - - - name: Run integration test - timeout-minutes: 45 - run: | - # todo: replace with viash test command - export NXF_VER=22.04.5 - nextflow run . \ - -main-script "${{ matrix.component.main_script }}" \ - -entry "${{ matrix.component.entry }}" \ - -profile docker,mount_temp,no_publish \ - -c workflows/utils/labels_ci.config diff --git a/.github/workflows/main-build.yml b/.github/workflows/main-build.yml index efdf563065..ddecf5fa5c 100644 --- a/.github/workflows/main-build.yml +++ b/.github/workflows/main-build.yml @@ -11,7 +11,6 @@ jobs: outputs: component_matrix: ${{ steps.set_matrix.outputs.matrix }} - cache_key: ${{ steps.cache.outputs.cache_key }} steps: - uses: actions/checkout@v4 @@ -28,22 +27,6 @@ jobs: config_mod: .functionality.version := 'main_build' parallel: true - # - name: Build nextflow schemas - # uses: viash-io/viash-actions/pro/build-nextflow-schemas@v4 - # with: - # workflows: src - # components: src - # viash_pro_token: ${{ secrets.GTHB_PAT }} - # tools_version: 'main_build' - - # - name: Build parameter files - # uses: viash-io/viash-actions/pro/build-nextflow-params@v4 - # with: - # workflows: src - # components: src - # viash_pro_token: ${{ secrets.GTHB_PAT }} - # tools_version: 'main_build' - - name: Deploy to target branch uses: peaceiris/actions-gh-pages@v4 with: @@ -73,6 +56,10 @@ jobs: runs-on: ubuntu-latest + permissions: + contents: read + packages: write + strategy: fail-fast: false matrix: @@ -93,13 +80,13 @@ jobs: platform: docker src: ${{ matrix.component.dir }} setup: build - + - name: Login to container registry uses: docker/login-action@v3 with: registry: ghcr.io - username: ${{ secrets.GTHB_USER }} - password: ${{ secrets.GTHB_PAT }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} - name: Push container uses: viash-io/viash-actions/ns-build@v5 diff --git a/.github/workflows/release-build.yml b/.github/workflows/release-build.yml index 4d4b18c2f8..35cc59365d 100644 --- a/.github/workflows/release-build.yml +++ b/.github/workflows/release-build.yml @@ -102,6 +102,10 @@ jobs: runs-on: ubuntu-latest + permissions: + contents: read + packages: write + strategy: fail-fast: false matrix: @@ -122,13 +126,13 @@ jobs: platform: docker src: ${{ matrix.component.dir }} setup: build - + - name: Login to container registry uses: docker/login-action@v3 with: registry: ghcr.io - username: ${{ secrets.GTHB_USER }} - password: ${{ secrets.GTHB_PAT }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} - name: Push container uses: viash-io/viash-actions/ns-build@v5 @@ -192,7 +196,7 @@ jobs: # phase 4 component_test: needs: [ build, list ] - if: ${{ needs.list.outputs.matrix != '[]' && needs.list.outputs.matrix != '' }} + if: ${{ needs.list.outputs.component_matrix != '[]' && needs.list.outputs.component_matrix != '' }} runs-on: ubuntu-latest strategy: