diff --git a/.github/actions/test_service_ghac_v2/action.yml b/.github/actions/test_service_ghac_v2/action.yml new file mode 100644 index 000000000000..0fb0b87210ff --- /dev/null +++ b/.github/actions/test_service_ghac_v2/action.yml @@ -0,0 +1,47 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +name: Test Service GHAC v2 +description: 'Test GHAC v2 service' +inputs: + github_token: + description: 'A Github token' + required: true + +runs: + using: "composite" + steps: + - name: Setup Rust toolchain + uses: ./.github/actions/setup + with: + need-nextest: true + + - name: Configure Cache Env + uses: actions/github-script@v9 + with: + script: | + core.exportVariable('ACTIONS_RESULTS_URL', process.env.ACTIONS_RESULTS_URL || ''); + core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || ''); + core.exportVariable('ACTIONS_CACHE_SERVICE_V2', 'on'); + + - name: Test + shell: bash + working-directory: core + run: cargo test behavior --features tests,services-ghac + env: + OPENDAL_TEST: ghac + GITHUB_TOKEN: ${{ inputs.github_token }} diff --git a/.github/workflows/service_test_ghac.yml b/.github/workflows/service_test_ghac.yml index 888e4040334c..d5f1be31b853 100644 --- a/.github/workflows/service_test_ghac.yml +++ b/.github/workflows/service_test_ghac.yml @@ -25,18 +25,19 @@ on: branches: - main paths: + - ".github/workflows/service_test_ghac.yml" + - ".github/actions/test_service_ghac_v2/**" - "core/Cargo.toml" - "core/Cargo.lock" - "core/core/Cargo.toml" - "core/core/src/**" - - "core/layers/**" - - "core/testkit/**" - - "core/tests/**" - "!core/core/src/docs/**" + - "core/layers/**" - "core/services/azblob/**" - "core/services/azure-common/**" - "core/services/ghac/**" - - ".github/workflows/service_test_ghac.yml" + - "core/testkit/**" + - "core/tests/**" concurrency: group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }} @@ -44,29 +45,10 @@ concurrency: jobs: ghac_v2: - runs-on: ubuntu-latest if: github.event_name == 'push' || !github.event.pull_request.head.repo.fork - permissions: - actions: write - steps: - - uses: actions/checkout@v6 - - name: Setup Rust toolchain - uses: ./.github/actions/setup - with: - need-nextest: true - - - name: Configure Cache Env - uses: actions/github-script@v9 - with: - script: | - core.exportVariable('ACTIONS_RESULTS_URL', process.env.ACTIONS_RESULTS_URL || ''); - core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || ''); - core.exportVariable('ACTIONS_CACHE_SERVICE_V2', 'on'); - - - name: Test - shell: bash - working-directory: core - run: cargo test behavior --features tests,services-ghac - env: - OPENDAL_TEST: ghac - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # `opendal-ghac-service-continuous-integration` repo contains an action wrapper that delegates + # implementation on opendal repo but runs and store caches in `opendal-ghac-service-continuous-integration` repo. + # We want to reduce cache load on GitHub for a single repo. + uses: apache/opendal-ghac-service-continuous-integration/.github/workflows/service-ghac-v2-test.yml@main + with: + ref: ${{ github.sha }}