From cf6cce86ffb064438485f1fc3ffba29e77faf070 Mon Sep 17 00:00:00 2001 From: Robrecht Cannoodt Date: Sun, 8 Sep 2024 06:30:55 +0200 Subject: [PATCH] try switching ci --- .github/workflows/build.yml | 21 ++++ .github/workflows/main-build.yml | 97 ------------------ .github/workflows/release-build.yml | 146 ---------------------------- .github/workflows/test.yml | 11 +++ .github/workflows/viash-test.yml | 88 ----------------- 5 files changed, 32 insertions(+), 331 deletions(-) create mode 100644 .github/workflows/build.yml delete mode 100644 .github/workflows/main-build.yml delete mode 100644 .github/workflows/release-build.yml create mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/viash-test.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000000..db6565135b --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,21 @@ +name: Build + +on: + push: + branches: [ 'main' ] + workflow_dispatch: + inputs: + version: + description: | + The version of the project to build. Example: `1.0.3`. + + If not provided, a development build with a version name + based on the branch name will be built. Otherwise, a release + build with the provided version will be built. + required: false + +jobs: + build: + uses: viash-io/viash-actions/.github/workflows/build.yaml@v6 + with: + version: ${{ github.event.inputs.version }} \ No newline at end of file diff --git a/.github/workflows/main-build.yml b/.github/workflows/main-build.yml deleted file mode 100644 index b017ecd001..0000000000 --- a/.github/workflows/main-build.yml +++ /dev/null @@ -1,97 +0,0 @@ -name: main build - -on: - push: - branches: [ 'main' ] - -jobs: - # phase 1 - list: - runs-on: ubuntu-latest - - outputs: - component_matrix: ${{ steps.set_matrix.outputs.matrix }} - - steps: - - uses: actions/checkout@v4 - - - uses: viash-io/viash-actions/setup@v6 - - - 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@v6 - with: - config_mod: .functionality.version := 'main_build' - parallel: true - - - name: Deploy to target branch - uses: peaceiris/actions-gh-pages@v4 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: . - publish_branch: main_build - - - id: ns_list - uses: viash-io/viash-actions/ns-list@v6 - with: - platform: docker - src: src - format: json - - - id: set_matrix - run: | - echo "matrix=$(jq -c '[ .[] | - { - "name": (.functionality.namespace + "/" + .functionality.name), - "dir": .info.config | capture("^(?.*\/)").dir - } - ]' ${{ steps.ns_list.outputs.output_file }} )" >> $GITHUB_OUTPUT - - # phase 2 - build: - needs: list - - runs-on: ubuntu-latest - - permissions: - contents: read - packages: write - - 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@v6 - - - name: Build container - uses: viash-io/viash-actions/ns-build@v6 - with: - config_mod: .functionality.version := 'main_build' - platform: docker - src: ${{ matrix.component.dir }} - setup: build - - - name: Login to container registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Push container - uses: viash-io/viash-actions/ns-build@v6 - with: - config_mod: .functionality.version := 'main_build' - platform: docker - src: ${{ matrix.component.dir }} - setup: push \ No newline at end of file diff --git a/.github/workflows/release-build.yml b/.github/workflows/release-build.yml deleted file mode 100644 index 6db5b094a8..0000000000 --- a/.github/workflows/release-build.yml +++ /dev/null @@ -1,146 +0,0 @@ -name: release build - -on: - workflow_dispatch: - inputs: - version_tag: - description: Version tag - required: true - -jobs: - # phase 1 - list: - env: - s3_bucket: s3://openproblems-data/resources_test/ - runs-on: ubuntu-latest - - outputs: - component_matrix: ${{ steps.set_matrix.outputs.matrix }} - cache_key: ${{ steps.cache.outputs.cache_key }} - - steps: - - uses: actions/checkout@v4 - - - uses: viash-io/viash-actions/setup@v6 - - - uses: viash-io/viash-actions/project/sync-and-cache-s3@v6 - 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@v6 - with: - config_mod: ".functionality.version := '${{ github.event.inputs.version_tag }}'" - parallel: true - - - name: Deploy to target branch - uses: peaceiris/actions-gh-pages@v4 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: . - publish_branch: release - full_commit_message: "Deploy for release ${{ github.event.inputs.version_tag }} from ${{ github.sha }}" - - - id: ns_list - uses: viash-io/viash-actions/ns-list@v6 - with: - platform: docker - src: src - format: json - - - id: set_matrix - run: | - echo "matrix=$(jq -c '[ .[] | - { - "name": (.functionality.namespace + "/" + .functionality.name), - "config": .info.config, - "dir": .info.config | capture("^(?.*\/)").dir - } - ]' ${{ steps.ns_list.outputs.output_file }} )" >> $GITHUB_OUTPUT - - # phase 2 - build: - needs: list - - runs-on: ubuntu-latest - - permissions: - contents: read - packages: write - - 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@v6 - - - name: Build container - uses: viash-io/viash-actions/ns-build@v6 - with: - config_mod: .functionality.version := 'main_build' - platform: docker - src: ${{ matrix.component.dir }} - setup: build - - - name: Login to container registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Push container - uses: viash-io/viash-actions/ns-build@v6 - with: - config_mod: .functionality.version := '${{ github.event.inputs.version_tag }}' - platform: docker - src: ${{ matrix.component.dir }} - setup: push - - ################################### - # phase 3 - component_test: - needs: [ build, list ] - if: ${{ needs.list.outputs.component_matrix != '[]' && needs.list.outputs.component_matrix != '' }} - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - component: ${{ fromJson(needs.list.outputs.component_matrix) }} - - steps: - - uses: actions/checkout@v4 - - - uses: viash-io/viash-actions/setup@v6 - - # use cache - - name: Cache resources data - uses: actions/cache@v4 - timeout-minutes: 5 - with: - path: resources_test - key: ${{ needs.list.outputs.cache_key }} - - - name: Test component - timeout-minutes: 30 - run: | - viash test \ - --config_mod ".functionality.version := '${{ github.event.inputs.version_tag }}'" \ - "${{ matrix.component.config }}" \ - --cpus 2 \ - --memory "5gb" diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000000..1cc1e061b1 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,11 @@ +name: Test + +on: + push: + branches: + - main + pull_request: + +jobs: + test: + uses: viash-io/viash-actions/.github/workflows/test.yaml@v6 \ No newline at end of file diff --git a/.github/workflows/viash-test.yml b/.github/workflows/viash-test.yml deleted file mode 100644 index 540f18cae4..0000000000 --- a/.github/workflows/viash-test.yml +++ /dev/null @@ -1,88 +0,0 @@ -name: viash test - -on: - pull_request: - push: - branches: [ main ] - -jobs: - - # phase 1 - list: - env: - s3_bucket: s3://openproblems-data/resources_test/ - runs-on: ubuntu-latest - - outputs: - matrix: ${{ steps.set_matrix.outputs.matrix }} - cache_key: ${{ steps.cache.outputs.cache_key }} - - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - uses: viash-io/viash-actions/setup@v6 - - - uses: viash-io/viash-actions/project/sync-and-cache-s3@v6 - id: cache - with: - s3_bucket: $s3_bucket - dest_path: resources_test - cache_key_prefix: resources_test__ - - - id: ns_list - uses: viash-io/viash-actions/ns-list@v6 - with: - platform: docker - format: json - - - id: ns_list_filtered - uses: viash-io/viash-actions/project/detect-changed-components@v6 - with: - input_file: "${{ steps.ns_list.outputs.output_file }}" - - - id: set_matrix - run: | - echo "matrix=$(jq -c '[ .[] | - { - "name": (.functionality.namespace + "/" + .functionality.name), - "config": .info.config - } - ]' ${{ steps.ns_list_filtered.outputs.output_file }} )" >> $GITHUB_OUTPUT - - # phase 2 - viash_test: - needs: list - if: ${{ needs.list.outputs.matrix != '[]' && needs.list.outputs.matrix != '' }} - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - component: ${{ fromJson(needs.list.outputs.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@v6 - - # use cache - - name: Cache resources data - uses: actions/cache@v4 - timeout-minutes: 10 - with: - path: resources_test - key: ${{ needs.list.outputs.cache_key }} - - - name: Run test - timeout-minutes: 30 - run: | - VIASH_TEMP=$RUNNER_TEMP/viash viash test \ - "${{ matrix.component.config }}" \ - --cpus 2 \ - --memory "5gb" -