diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8ef51719..451ca874 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -15,6 +15,12 @@ on: jobs: build: runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + node_version: + - 20 + - 18 steps: - name: Checkout @@ -24,3 +30,5 @@ jobs: uses: docker/bake-action@v5 with: targets: build + env: + NODE_VERSION: ${{ matrix.node_version }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6da276c4..a2e6ee00 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -21,6 +21,12 @@ env: jobs: test: runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + node_version: + - 20 + - 18 steps: - name: Checkout @@ -32,6 +38,7 @@ jobs: targets: test-coverage env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NODE_VERSION: ${{ matrix.node_version }} - name: Check coverage run: | @@ -44,7 +51,7 @@ jobs: - name: Upload coverage uses: codecov/codecov-action@v5 - if: env.RUN_CODECOV == 'true' + if: env.RUN_CODECOV == 'true' && matrix.node_version == env.NODE_VERSION with: files: ./coverage/clover.xml flags: unit diff --git a/docker-bake.hcl b/docker-bake.hcl index 184b6c4a..549aec4a 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -12,6 +12,10 @@ // See the License for the specific language governing permissions and // limitations under the License. +variable "NODE_VERSION" { + default = null +} + group "default" { targets = ["build"] } @@ -24,31 +28,42 @@ group "validate" { targets = ["lint", "vendor-validate", "dockerfile-validate", "license-validate"] } +target "_common" { + args = { + NODE_VERSION = NODE_VERSION + } +} + target "build" { + inherits = ["_common"] dockerfile = "dev.Dockerfile" target = "build-update" output = ["."] } target "format" { + inherits = ["_common"] dockerfile = "dev.Dockerfile" target = "format-update" output = ["."] } target "lint" { + inherits = ["_common"] dockerfile = "dev.Dockerfile" target = "lint" output = ["type=cacheonly"] } target "vendor" { + inherits = ["_common"] dockerfile = "dev.Dockerfile" target = "vendor-update" output = ["."] } target "vendor-validate" { + inherits = ["_common"] dockerfile = "dev.Dockerfile" target = "vendor-validate" output = ["type=cacheonly"] @@ -67,6 +82,7 @@ target "dockerfile-validate" { } target "test" { + inherits = ["_common"] dockerfile = "dev.Dockerfile" target = "test" output = ["type=cacheonly"] @@ -74,6 +90,7 @@ target "test" { } target "test-coverage" { + inherits = ["_common"] dockerfile = "dev.Dockerfile" target = "test-coverage" output = ["./coverage"] @@ -87,6 +104,7 @@ variable "GITHUB_REF" { } target "publish" { + inherits = ["_common"] dockerfile = "dev.Dockerfile" args = { GITHUB_REF = GITHUB_REF