diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index d8fe526..76d923d 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -14,7 +14,7 @@ jobs: name: Build and Publish Docker Images steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 2 - name: Docker meta diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index 2fd90a3..a91a25a 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -1,13 +1,14 @@ name: Integration Tests - -on: [push,pull_request,workflow_dispatch] - +on: + - push + - pull_request + - workflow_dispatch jobs: integration-tests: runs-on: ubuntu-latest name: Integration Tests steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 2 - name: Run tests using Docker diff --git a/.github/workflows/loading-groups.yml b/.github/workflows/loading-groups.yml index 9d58340..35b91e0 100644 --- a/.github/workflows/loading-groups.yml +++ b/.github/workflows/loading-groups.yml @@ -1,18 +1,25 @@ name: Baseline Groups - -on: [push,pull_request,workflow_dispatch] - +on: + - push + - pull_request + - workflow_dispatch jobs: group-loading: runs-on: ubuntu-latest strategy: fail-fast: false matrix: - smalltalk: [ Pharo64-11, Pharo64-10, Pharo64-9.0, Pharo64-8.0 ] - load-spec: [ deployment, examples, tools, development] + smalltalk: + - Pharo64-10 + - Pharo64-11 + load-spec: + - deployment + - examples + - tools + - development name: ${{ matrix.smalltalk }} + ${{ matrix.load-spec }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: hpi-swa/setup-smalltalkCI@v1 with: smalltalk-image: ${{ matrix.smalltalk }} diff --git a/.github/workflows/loading-gs64-components.yml b/.github/workflows/loading-gs64-components.yml new file mode 100644 index 0000000..6357a4a --- /dev/null +++ b/.github/workflows/loading-gs64-components.yml @@ -0,0 +1,21 @@ +name: 'GS64 Components Loading' +on: + - push + - pull_request + - workflow_dispatch +jobs: + component-loading: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + load-spec: + - Deployment + name: GS64 + ${{ matrix.load-spec }} + steps: + - uses: actions/checkout@v3 + - name: Load component in image + uses: ba-st-actions/gs64-ci@v2 + with: + project_name: 'Stargate-Consul' + load_spec: 'Stargate-Consul-${{ matrix.load-spec }}' diff --git a/.github/workflows/markdown-lint.yml b/.github/workflows/markdown-lint.yml index fbb50fa..84e4633 100644 --- a/.github/workflows/markdown-lint.yml +++ b/.github/workflows/markdown-lint.yml @@ -1,11 +1,14 @@ name: Markdown Lint -on: [push,pull_request,workflow_dispatch] +on: + - push + - pull_request + - workflow_dispatch jobs: remark-lint: name: runner / markdownlint runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: markdownlint uses: reviewdog/action-markdownlint@v0 with: diff --git a/.github/workflows/notify.yml b/.github/workflows/notify.yml index bfe0828..b43382e 100644 --- a/.github/workflows/notify.yml +++ b/.github/workflows/notify.yml @@ -1,9 +1,5 @@ name: Release Notifications - -on: - release: - types: [published] - +on: workflow_dispatch jobs: notify: runs-on: ubuntu-latest diff --git a/.github/workflows/shellcheck.yml b/.github/workflows/shellcheck.yml index 6fe7559..38b6674 100644 --- a/.github/workflows/shellcheck.yml +++ b/.github/workflows/shellcheck.yml @@ -1,12 +1,13 @@ name: Shellcheck - -on: [push,pull_request] - +on: + - push + - pull_request + - workflow_dispatch jobs: shellcheck: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Run Shellcheck uses: reviewdog/action-shellcheck@v1 with: diff --git a/.github/workflows/unit-tests-gs64.yml b/.github/workflows/unit-tests-gs64.yml new file mode 100644 index 0000000..dfae312 --- /dev/null +++ b/.github/workflows/unit-tests-gs64.yml @@ -0,0 +1,16 @@ +name: 'GS64 Unit Tests' +on: + - push + - pull_request + - workflow_dispatch +jobs: + unit-tests: + runs-on: ubuntu-latest + name: GS64 Unit Tests + steps: + - uses: actions/checkout@v4 + - name: Load Image and Run Tests + uses: ba-st-actions/gs64-ci@v2 + with: + project_name: 'Stargate-Consul' + run_tests: 'true' diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml index 6383768..3e1d1c4 100644 --- a/.github/workflows/unit-tests.yml +++ b/.github/workflows/unit-tests.yml @@ -1,17 +1,20 @@ name: Unit Tests - -on: [push,pull_request,workflow_dispatch] - +on: + - push + - pull_request + - workflow_dispatch jobs: build: runs-on: ubuntu-latest strategy: matrix: - smalltalk: [ Pharo64-11, Pharo64-10, Pharo64-9.0, Pharo64-8.0 ] + smalltalk: + - Pharo64-10 + - Pharo64-11 name: ${{ matrix.smalltalk }} steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - uses: hpi-swa/setup-smalltalkCI@v1 with: smalltalk-image: ${{ matrix.smalltalk }} diff --git a/LICENSE b/LICENSE index 5fa1cd4..3a3c3e9 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2020-2022 Buenos Aires Smalltalk Contributors +Copyright (c) 2020-2024 Buenos Aires Smalltalk Contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 8d77cab..af9f546 100644 --- a/README.md +++ b/README.md @@ -5,19 +5,23 @@ This library provides a [Stargate](https://github.com/ba-st/Stargate) operational plugin to interact with the [Consul](https://www.consul.io) HTTP API. -[![Unit Tests](https://github.com/ba-st/Stargate-Consul/actions/workflows/unit-tests.yml/badge.svg)](https://github.com/ba-st/Stargate-Consul/actions/workflows/unit-tests.yml) +[![Pharo Unit Tests](https://github.com/ba-st/Stargate-Consul/actions/workflows/unit-tests.yml/badge.svg)](https://github.com/ba-st/Stargate-Consul/actions/workflows/unit-tests.yml) +[![GS64 - Unit Tests](https://github.com/ba-st/Stargate-Consul/actions/workflows/unit-tests-gs64.yml/badge.svg)](https://github.com/ba-st/Stargate-Consul/actions/workflows/unit-tests-gs64.yml) [![Coverage Status](https://codecov.io/github/ba-st/Stargate-Consul/coverage.svg?branch=release-candidate)](https://codecov.io/gh/ba-st/Stargate-Consul/branch/release-candidate) + [![Baseline Groups](https://github.com/ba-st/Stargate-Consul/actions/workflows/loading-groups.yml/badge.svg)](https://github.com/ba-st/Stargate-Consul/actions/workflows/loading-groups.yml) +[![GS64 Components](https://github.com/ba-st/Stargate-Consul/actions/workflows/loading-gs64-components.yml/badge.svg)](https://github.com/ba-st/Stargate-Consul/actions/workflows/loading-gs64-components.yml) [![Integration Tests](https://github.com/ba-st/Stargate-Consul/actions/workflows/integration-tests.yml/badge.svg)](https://github.com/ba-st/Stargate-Consul/actions/workflows/integration-tests.yml) [![Markdown Lint](https://github.com/ba-st/Stargate-Consul/actions/workflows/markdown-lint.yml/badge.svg)](https://github.com/ba-st/Stargate-Consul/actions/workflows/markdown-lint.yml) [![Shellcheck](https://github.com/ba-st/Stargate-Consul/actions/workflows/shellcheck.yml/badge.svg)](https://github.com/ba-st/Stargate-Consul/actions/workflows/shellcheck.yml) [![GitHub release](https://img.shields.io/github/release/ba-st/Stargate-Consul.svg)](https://github.com/ba-st/Stargate-Consul/releases/latest) -[![Pharo 8.0](https://img.shields.io/badge/Pharo-8.0-informational)](https://pharo.org) -[![Pharo 9.0](https://img.shields.io/badge/Pharo-9.0-informational)](https://pharo.org) + [![Pharo 10](https://img.shields.io/badge/Pharo-10-informational)](https://pharo.org) [![Pharo 11](https://img.shields.io/badge/Pharo-11-informational)](https://pharo.org) +[![GS64 3.7.0](https://img.shields.io/badge/GS64-3.7.0-informational)](https://gemtalksystems.com/products/gs64/) + Quick links - [**Explore the docs**](docs/README.md) diff --git a/docker/Dockerfile b/docker/Dockerfile index bee76a1..f21804b 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -7,20 +7,14 @@ RUN pharo metacello install gitlocal://. \ BaselineOfStargateConsul --groups=Examples # Stage 2: Copy the resulting Pharo.image -FROM ghcr.io/ba-st/launchpad:v4 +FROM ghcr.io/ba-st/launchpad:v5 -USER root +COPY --from=loader --chown=pharo:users --chmod=755 /opt/pharo/pharo-local/iceberg/ba-st/Stargate/docker/health-check.sh ./ +COPY --from=loader --chown=pharo:users /opt/pharo/Pharo.image ./ +COPY --from=loader --chown=pharo:users /opt/pharo/Pharo.changes ./ +COPY --from=loader --chown=pharo:users /opt/pharo/Pharo*.sources ./ -COPY --from=loader /opt/pharo/pharo-local/iceberg/ba-st/Stargate/docker/health-check.sh ./ -COPY --from=loader /opt/pharo/Pharo.image ./ -COPY --from=loader /opt/pharo/Pharo.changes ./ -COPY --from=loader /opt/pharo/Pharo*.sources ./ - -RUN mkdir logs \ - && chmod a+x health-check.sh \ - && chown --recursive pharo:users /opt/pharo - -USER pharo +RUN mkdir logs HEALTHCHECK CMD ./health-check.sh diff --git a/rowan/components/Deployment.ston b/rowan/components/Deployment.ston new file mode 100644 index 0000000..6dd80fd --- /dev/null +++ b/rowan/components/Deployment.ston @@ -0,0 +1,20 @@ +RwSimpleProjectLoadComponentV2 { + #name : 'Deployment', + #projectNames : [ + 'Stargate', + 'Superluminal' + ], + #componentNames : [ ], + #packageNames : [ + 'Stargate-Consul' + ], + #conditionalPackageMapSpecs : { + 'gemstone' : { + 'allusers' : { + #packageNameToPlatformPropertiesMap : { + 'Stargate-Consul' : { 'symbolDictName' : 'Stargate' } + } + } + } + } +} diff --git a/rowan/components/Tests.ston b/rowan/components/Tests.ston new file mode 100644 index 0000000..9f55136 --- /dev/null +++ b/rowan/components/Tests.ston @@ -0,0 +1,21 @@ +RwSimpleProjectLoadComponentV2 { + #name : 'Tests', + #condition : 'tests', + #projectNames : [ ], + #componentNames : [ + 'Deployment' + ], + #packageNames : [ + 'Stargate-Consul-Tests' + + ], + #conditionalPackageMapSpecs : { + 'gemstone' : { + 'allusers' : { + #packageNameToPlatformPropertiesMap : { + 'Stargate-Consul-Tests' : { 'symbolDictName' : 'Stargate' } + } + } + } + } +} diff --git a/rowan/project.ston b/rowan/project.ston new file mode 100644 index 0000000..3982a02 --- /dev/null +++ b/rowan/project.ston @@ -0,0 +1,11 @@ +RwProjectSpecificationV2 { + #specName : 'project', + #projectSpecPath : 'rowan', + #componentsPath : 'rowan/components', + #packagesPath : 'source', + #projectsPath : 'rowan/projects', + #specsPath : 'rowan/specs', + #packageFormat : 'tonel', + #packageConvention : 'Rowan', + #comment : 'Stargate Consul project specification' +} diff --git a/rowan/projects/Stargate.ston b/rowan/projects/Stargate.ston new file mode 100644 index 0000000..636d66d --- /dev/null +++ b/rowan/projects/Stargate.ston @@ -0,0 +1,11 @@ +RwLoadSpecificationV2 { + #specName: 'Stargate', + #projectName : 'Stargate', + #gitUrl : 'https://github.com/ba-st/Stargate.git', + #revision : 'v9', + #projectSpecFile : 'rowan/project.ston', + #componentNames : [ + 'Deployment', + 'Dependent-SUnit-Extensions' + ] +} diff --git a/rowan/projects/Superluminal.ston b/rowan/projects/Superluminal.ston new file mode 100644 index 0000000..3423a94 --- /dev/null +++ b/rowan/projects/Superluminal.ston @@ -0,0 +1,11 @@ +RwLoadSpecificationV2 { + #specName: 'Superluminal', + #projectName : 'Superluminal', + #gitUrl : 'https://github.com/ba-st/Superluminal.git', + #revision : 'v5', + #projectSpecFile : 'rowan/project.ston', + #componentNames : [ + 'API-Client', + 'Dependent-SUnit-Extensions' + ] +} diff --git a/rowan/specs/Stargate-Consul-CI.ston b/rowan/specs/Stargate-Consul-CI.ston new file mode 100644 index 0000000..d2a8e4e --- /dev/null +++ b/rowan/specs/Stargate-Consul-CI.ston @@ -0,0 +1,14 @@ +RwLoadSpecificationV2 { + #specName: 'Stargate-Consul-CI', + #projectName : 'Stargate-Consul', + #diskUrl : 'Stargate-Consul', + #projectSpecFile : 'rowan/project.ston', + #componentNames : [ + 'Tests' + ], + #customConditionalAttributes : [ + 'tests', + 'sunit' + ], + #comment : 'Loading spec for the continuous integration setup' +} diff --git a/rowan/specs/Stargate-Consul-Deployment.ston b/rowan/specs/Stargate-Consul-Deployment.ston new file mode 100644 index 0000000..86b95d0 --- /dev/null +++ b/rowan/specs/Stargate-Consul-Deployment.ston @@ -0,0 +1,9 @@ +RwLoadSpecificationV2 { + #specName: 'Stargate-Consul-Deployment', + #projectName : 'Stargate-Consul', + #diskUrl : 'Stargate-Consul', + #projectSpecFile : 'rowan/project.ston', + #componentNames : [ + 'Deployment' + ] +} diff --git a/source/.properties b/source/.properties index 53a5454..f668380 100644 --- a/source/.properties +++ b/source/.properties @@ -1,3 +1,4 @@ { - #format : #tonel + #format : #tonel, + #convention : 'Rowan' }