diff --git a/.github/workflows/configured_test.yml b/.github/workflows/configured_test.yml new file mode 100644 index 00000000..9bea032c --- /dev/null +++ b/.github/workflows/configured_test.yml @@ -0,0 +1,71 @@ +# +# SPDX-License-Identifier: Apache-2.0 +# + +# This workflow is intended to provide an interactive way of configuring +# PDO tests. Common configuration variables can be set interactively to +# debug differences between local and github. + +name: Run specific PDO tests +on: + workflow_dispatch: + inputs: + interpreter: + description: 'Interpreter' + required: true + default: 'wawaka' + type: choice + options: + - wawaka + - wawaka-opt + logLevel: + description: 'Log level' + required: true + default: 'warning' + type: choice + options: + - debug + - info + - warning + memoryConfiguration: + description: 'Interpreter memory configuration' + required: false + default: MEDIUM + type: choice + options: + - SMALL + - MEDIUM + - LARGE + +jobs: + pdo_specific_tests: + name: Run specific PDO tests + runs-on: ubuntu-22.04 + + steps: + - name: Check out repo + uses: actions/checkout@v4 + with: + submodules: recursive + fetch-depth: 0 + fetch-tags: true + + - name: Display branch name + run: | + echo "Building branch $GITHUB_HEAD_REF" + echo PDO VERSION is $(bin/get_version) + + - name: Build and run tests + env: + PDO_INTERPRETER: ${{ inputs.interpreter }} + PDO_LOG_LEVEL: ${{ inputs.logLevel }} + PDO_MEMORY_CONFIG: ${{ inputs.memoryConfiguration }} + PDO_DEBUG_BUILD: 1 + run: | + # The creation of a dummy branch is necessary for the CI tests + # to work on PRs. Based on empirical results, in the absence of + # this command, CI tests work on the main branch and on local + # branches. However, they fail as a PR is created. + git checkout -b ci-test-branch + . build/common-config.sh + make -C docker test diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 00000000..e3eaf1b7 --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,63 @@ +# +# SPDX-License-Identifier: Apache-2.0 +# + +name: Build and Push PDO Docker Images + +on: + workflow_dispatch: + + pull_request: + types: [closed] + branches: [main] + +jobs: + + docker_build: + + if: > + github.event.name == 'workflow_dispatch' || + github.event.name == 'pull_request' && github.event.pull_request.merged == true + name: Build PDO Images + runs-on: ubuntu-22.04 + + steps: + - name: Check out repo + uses: actions/checkout@v4 + with: + submodules: recursive + fetch-depth: 0 + fetch-tags: true + + - name: Display branch name + run: | + echo "Building branch images for $GITHUB_HEAD_REF" + echo PDO VERSION is $(bin/get_version) + echo "PDO_VERSION=$(bin/get_version)" >> $GITHUB_ENV + echo "EVENT NAME: ${{ github.event.name }}" + echo "MERGED: ${{ github.event.pull_request.merged }}" + + - name: Build Docker Images + env: + PDO_INTERPRETER: wawaka + PDO_LOG_LEVEL: warning + run: | + git checkout -b ci-test-branch + . build/common-config.sh + make -C docker + + - name: Login to the ghcr.io Container Registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Tag and push the images + run: | + for image in pdo_services pdo_ccf pdo_client + do + docker image tag ghcr.io/{{ github.repository_owner }}/$image:$PDO_VERSION + docker image tag ghcr.io/{{ github.repository_owner }}/$image:latest + docker image push --all-tags ghcr.io/{{ github.repository_owner }}/$image + done diff --git a/.github/workflows/ci.yaml b/.github/workflows/full_test.yml similarity index 57% rename from .github/workflows/ci.yaml rename to .github/workflows/full_test.yml index c6faf01f..f947d2fe 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/full_test.yml @@ -2,12 +2,19 @@ # SPDX-License-Identifier: Apache-2.0 # -name: PDO CI -on: [pull_request, push] +# This workflow is intended to be used as a validity test for any +# pull request. That is, this is a minimal functionality that must +# be successfully executed prior to merging a pull request. Note +# that this can be overridden by adding '[skip ci]' in the commit +# name. This should not be done on the main PDO branch. + +name: Run full PDO tests +on: [ pull_request ] + jobs: - pdo_ci: + pdo_full_tests: if: "!contains(github.event.commits[0].message, '[skip ci]')" - name: PDO CI Job + name: Run full PDO tests runs-on: ubuntu-22.04 strategy: @@ -25,11 +32,10 @@ jobs: - name: Display branch name run: | - echo "Building branch $GITHUB_HEAD_REF" echo PDO VERSION is $(bin/get_version) + echo "BRANCH is $GITHUB_HEAD_REF" - name: Build and run tests - if: "!contains(github.event.commits[0].message, '[debug]')" env: PDO_INTERPRETER: ${{ matrix.interpreter }} PDO_LOG_LEVEL: warning @@ -41,17 +47,3 @@ jobs: git checkout -b ci-test-branch . build/common-config.sh make -C docker test - - - name: Build and run tests (DEBUG MODE) - if: "contains(github.event.commits[0].message, '[debug]')" - env: - PDO_INTERPRETER: ${{ matrix.interpreter }} - PDO_LOG_LEVEL: debug - run: | - # The creation of a dummy branch is necessary for the CI tests - # to work on PRs. Based on empirical results, in the absence of - # this command, CI tests work on the main branch and on local - # branches. However, they fail as a PR is created. - git checkout -b ci-test-branch - . build/common-config.sh - make -C docker test