name: CI GM on: push: branches: [master] paths-ignore: - 'docs/**' - '**/*.md' pull_request: branches: [master] paths-ignore: - 'docs/**' - '**/*.md' concurrency: group: ${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.run_number || github.ref }} cancel-in-progress: true permissions: contents: read jobs: build: strategy: fail-fast: false matrix: platform: - ubuntu-latest os_name: - linux_openresty_tongsuo test_dir: - t/gm runs-on: ${{ matrix.platform }} timeout-minutes: 90 env: SERVER_NAME: ${{ matrix.os_name }} OPENRESTY_VERSION: default steps: - name: Check out code uses: actions/checkout@v4 with: submodules: recursive - name: Cache deps uses: actions/cache@v4 env: cache-name: cache-deps with: path: deps key: ${{ runner.os }}-${{ env.cache-name }}-${{ matrix.os_name }}-${{ hashFiles('apisix-master-0.rockspec') }} - name: Cache Tongsuo compilation id: cache-tongsuo uses: actions/cache@v4 env: cache-name: cache-tongsuo with: path: ./tongsuo # TODO: use a fixed release once they have created one. # See https://github.com/Tongsuo-Project/Tongsuo/issues/318 key: ${{ runner.os }}-${{ env.cache-name }}-${{ matrix.os_name }}-tongsuo-ver - name: Test SSL Env id: test_ssl_env shell: bash if: steps.cache-tongsuo.outputs.cache-hit != 'true' run: | echo "compile_tongsuo=true" >>$GITHUB_OUTPUT - name: Linux launch common services run: | make ci-env-up project_compose_ci=ci/pod/docker-compose.common.yml sudo ./ci/init-common-test-service.sh - name: Linux Before install env: COMPILE_TONGSUO: ${{ steps.test_ssl_env.outputs.compile_tongsuo }} run: | sudo --preserve-env=COMPILE_TONGSUO \ ./ci/${{ matrix.os_name }}_runner.sh before_install - name: Linux Do install run: | sudo --preserve-env=OPENRESTY_VERSION \ ./ci/${{ matrix.os_name }}_runner.sh do_install - name: Linux Script env: TEST_FILE_SUB_DIR: ${{ matrix.test_dir }} run: | sudo -E ./ci/${{ matrix.os_name }}_runner.sh script