diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..d9d028d --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,13 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + day: "monday" + ignore: + - dependency-name: "ba-st-actions/pharo-ci" + groups: + github-actions: + patterns: + - "*" diff --git a/.github/workflows/loading-groups.yml b/.github/workflows/loading-groups.yml index 9e14155..0b57257 100644 --- a/.github/workflows/loading-groups.yml +++ b/.github/workflows/loading-groups.yml @@ -1,19 +1,14 @@ -name: Baseline Groups +name: Pharo Groups Loading on: - push - pull_request - workflow_dispatch jobs: - group-loading: - runs-on: ubuntu-latest + group-loading: + name: ${{ matrix.load-spec }} strategy: fail-fast: false - matrix: - smalltalk: - - Pharo64-10 - - Pharo64-11 - - Pharo64-12 - - Pharo64-13 + matrix: load-spec: - core - sqlite3 @@ -23,14 +18,6 @@ jobs: - tests - tools - development - name: Baseline Groups / ${{ matrix.smalltalk }} + ${{ matrix.load-spec }} - steps: - - uses: actions/checkout@v4 - - uses: hpi-swa/setup-smalltalkCI@v1 - with: - smalltalk-image: ${{ matrix.smalltalk }} - - name: Load group in image - run: smalltalkci -s ${{ matrix.smalltalk }} .smalltalkci/loading.${{ matrix.load-spec }}.ston - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - timeout-minutes: 15 + uses: ./.github/workflows/loading-pharo-group.yml + with: + load-spec: ${{ matrix.load-spec }} diff --git a/.github/workflows/loading-pharo-group.yml b/.github/workflows/loading-pharo-group.yml new file mode 100644 index 0000000..5fe664d --- /dev/null +++ b/.github/workflows/loading-pharo-group.yml @@ -0,0 +1,52 @@ +name: Reusable Baseline groups +on: + workflow_call: + inputs: + load-spec: + required: true + type: string +jobs: + group-loading-pharo-10: + runs-on: ubuntu-latest + name: Pharo64-10 + steps: + - uses: actions/checkout@v6 + - uses: ba-st-actions/pharo-ci@v10 + with: + spec: .smalltalkci/.loading.${{ inputs.load-spec }}.ston + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + timeout-minutes: 15 + group-loading-pharo-11: + runs-on: ubuntu-latest + name: Pharo64-11 + steps: + - uses: actions/checkout@v6 + - uses: ba-st-actions/pharo-ci@v11 + with: + spec: .smalltalkci/.loading.${{ inputs.load-spec }}.ston + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + timeout-minutes: 15 + group-loading-pharo-12: + runs-on: ubuntu-latest + name: Pharo64-12 + steps: + - uses: actions/checkout@v6 + - uses: ba-st-actions/pharo-ci@v12 + with: + spec: .smalltalkci/.loading.${{ inputs.load-spec }}.ston + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + timeout-minutes: 15 + group-loading-pharo-13: + runs-on: ubuntu-latest + name: Pharo64-13 + steps: + - uses: actions/checkout@v6 + - uses: ba-st-actions/pharo-ci@v13 + with: + spec: .smalltalkci/.loading.${{ inputs.load-spec }}.ston + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + timeout-minutes: 15 diff --git a/.github/workflows/markdown-lint.yml b/.github/workflows/markdown-lint.yml index 55b9722..13c28ab 100644 --- a/.github/workflows/markdown-lint.yml +++ b/.github/workflows/markdown-lint.yml @@ -8,10 +8,10 @@ jobs: name: runner / markdownlint runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: markdownlint - uses: reviewdog/action-markdownlint@v0.1 + uses: reviewdog/action-markdownlint@v0 with: github_token: ${{ secrets.GITHUB_TOKEN }} fail_on_error: true - reporter: github-pr-review + reporter: github-pr-review \ No newline at end of file diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml index d88f92d..1c522e7 100644 --- a/.github/workflows/unit-tests.yml +++ b/.github/workflows/unit-tests.yml @@ -1,32 +1,78 @@ -name: Unit Tests +name: Pharo Unit Tests on: - push - pull_request - workflow_dispatch jobs: - build: + unit-tests-pharo-10: runs-on: ubuntu-latest - strategy: - matrix: - smalltalk: - - Pharo64-10 - - Pharo64-11 - - Pharo64-12 - - Pharo64-13 - name: Unit Tests / ${{ matrix.smalltalk }} + name: Pharo64-10 steps: - - uses: actions/checkout@v4 - - name: Set up Smalltalk CI - uses: hpi-swa/setup-smalltalkCI@v1 + - uses: actions/checkout@v6 + - name: Load Image and Run Tests + uses: ba-st-actions/pharo-ci@v10 + with: + spec: .smalltalkci/.unit-tests.ston + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + timeout-minutes: 15 + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v6 + with: + name: Unit-Tests-Pharo-10 + token: ${{ secrets.CODECOV_TOKEN }} + flags: unit + unit-tests-pharo-11: + runs-on: ubuntu-latest + name: Pharo64-11 + steps: + - uses: actions/checkout@v6 + - name: Load Image and Run Tests + uses: ba-st-actions/pharo-ci@v11 + with: + spec: .smalltalkci/.unit-tests.ston + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + timeout-minutes: 15 + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v6 with: - smalltalk-image: ${{ matrix.smalltalk }} + name: Unit-Tests-Pharo-11 + token: ${{ secrets.CODECOV_TOKEN }} + flags: unit + unit-tests-pharo-12: + runs-on: ubuntu-latest + name: Pharo64-12 + steps: + - uses: actions/checkout@v6 - name: Load Image and Run Tests - run: smalltalkci -s ${{ matrix.smalltalk }} .smalltalkci/unit-tests.ston + uses: ba-st-actions/pharo-ci@v12 + with: + spec: .smalltalkci/.unit-tests.ston + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + timeout-minutes: 15 + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v6 + with: + name: Unit-Tests-Pharo-12 + token: ${{ secrets.CODECOV_TOKEN }} + flags: unit + unit-tests-pharo-13: + runs-on: ubuntu-latest + name: Pharo64-13 + steps: + - uses: actions/checkout@v6 + - name: Load Image and Run Tests + uses: ba-st-actions/pharo-ci@v13 + with: + spec: .smalltalkci/.unit-tests.ston env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} timeout-minutes: 15 - name: Upload coverage to Codecov - uses: codecov/codecov-action@v5 + uses: codecov/codecov-action@v6 with: - name: Unit-Tests-${{matrix.smalltalk}} + name: Unit-Tests-Pharo-13 token: ${{ secrets.CODECOV_TOKEN }} + flags: unit diff --git a/.smalltalkci/loading.core.ston b/.smalltalkci/.loading.core.ston similarity index 100% rename from .smalltalkci/loading.core.ston rename to .smalltalkci/.loading.core.ston diff --git a/.smalltalkci/loading.dependent-sunit-extensions.ston b/.smalltalkci/.loading.dependent-sunit-extensions.ston similarity index 100% rename from .smalltalkci/loading.dependent-sunit-extensions.ston rename to .smalltalkci/.loading.dependent-sunit-extensions.ston diff --git a/.smalltalkci/loading.deployment.ston b/.smalltalkci/.loading.deployment.ston similarity index 100% rename from .smalltalkci/loading.deployment.ston rename to .smalltalkci/.loading.deployment.ston diff --git a/.smalltalkci/loading.development.ston b/.smalltalkci/.loading.development.ston similarity index 100% rename from .smalltalkci/loading.development.ston rename to .smalltalkci/.loading.development.ston diff --git a/.smalltalkci/loading.postgres.ston b/.smalltalkci/.loading.postgres.ston similarity index 100% rename from .smalltalkci/loading.postgres.ston rename to .smalltalkci/.loading.postgres.ston diff --git a/.smalltalkci/loading.sqlite3.ston b/.smalltalkci/.loading.sqlite3.ston similarity index 100% rename from .smalltalkci/loading.sqlite3.ston rename to .smalltalkci/.loading.sqlite3.ston diff --git a/.smalltalkci/loading.tests.ston b/.smalltalkci/.loading.tests.ston similarity index 100% rename from .smalltalkci/loading.tests.ston rename to .smalltalkci/.loading.tests.ston diff --git a/.smalltalkci/loading.tools.ston b/.smalltalkci/.loading.tools.ston similarity index 100% rename from .smalltalkci/loading.tools.ston rename to .smalltalkci/.loading.tools.ston diff --git a/.smalltalkci/unit-tests.ston b/.smalltalkci/.unit-tests.ston similarity index 100% rename from .smalltalkci/unit-tests.ston rename to .smalltalkci/.unit-tests.ston diff --git a/LICENSE b/LICENSE index 71ed897..81f925b 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2022-2025 Mercap Software +Copyright (c) 2022-2026 Mercap Software 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/source/BaselineOfPersistentAPISkeleton/BaselineOfPersistentAPISkeleton.class.st b/source/BaselineOfPersistentAPISkeleton/BaselineOfPersistentAPISkeleton.class.st index b7e9e28..1809b8b 100644 --- a/source/BaselineOfPersistentAPISkeleton/BaselineOfPersistentAPISkeleton.class.st +++ b/source/BaselineOfPersistentAPISkeleton/BaselineOfPersistentAPISkeleton.class.st @@ -33,7 +33,7 @@ BaselineOfPersistentAPISkeleton >> projectClass [ BaselineOfPersistentAPISkeleton >> setUpDependencies: spec [ spec - baseline: 'Stargate' with: [ spec repository: 'github://ba-st/Stargate:v11' ]; + baseline: 'Stargate' with: [ spec repository: 'github://ba-st/Stargate:v12' ]; project: 'Stargate-Deployment' copyFrom: 'Stargate' with: [ spec loads: 'Deployment' ]; project: 'Stargate-SUnit' copyFrom: 'Stargate' @@ -42,25 +42,25 @@ BaselineOfPersistentAPISkeleton >> setUpDependencies: spec [ project: 'Stargate-Examples' copyFrom: 'Stargate' with: [ spec loads: 'Examples' ]. spec - baseline: 'StargateConsul' with: [ spec repository: 'github://ba-st/Stargate-Consul:v7' ]; + baseline: 'StargateConsul' with: [ spec repository: 'github://ba-st/Stargate-Consul:v8' ]; project: 'Stargate-Consul-Deployment' copyFrom: 'StargateConsul' with: [ spec loads: 'Deployment' ]. spec - baseline: 'Sagan' with: [ spec repository: 'github://ba-st/Sagan:v10' ]; + baseline: 'Sagan' with: [ spec repository: 'github://ba-st/Sagan:v12' ]; project: 'Sagan-SQLite' copyFrom: 'Sagan' with: [ spec loads: 'SQLite' ]; project: 'Sagan-PostgreSQL' copyFrom: 'Sagan' with: [ spec loads: 'PostgreSQL' ]. spec - baseline: 'Launchpad' with: [ spec repository: 'github://ba-st/Launchpad:v7' ]; + baseline: 'Launchpad' with: [ spec repository: 'github://ba-st/Launchpad:v8' ]; project: 'Launchpad-Deployment' copyFrom: 'Launchpad' with: [ spec loads: 'Deployment' ]; project: 'Launchpad-SUnit' copyFrom: 'Launchpad' with: [ spec loads: 'Dependent-SUnit-Extensions' ]. spec - baseline: 'Kepler' with: [ spec repository: 'github://ba-st/Kepler:v7' ]; + baseline: 'Kepler' with: [ spec repository: 'github://ba-st/Kepler:v8' ]; project: 'Kepler-Core' copyFrom: 'Kepler' with: [ spec loads: 'Core' ]; project: 'Kepler-SUnit' copyFrom: 'Kepler' with: [ spec loads: 'Dependent-SUnit-Extensions' ] ] diff --git a/source/Persistent-API-Skeleton-Tests/CreateEmptyRDBMSApplicationTest.class.st b/source/Persistent-API-Skeleton-Tests/CreateEmptyRDBMSApplicationTest.class.st index 57b54b6..14d0697 100644 --- a/source/Persistent-API-Skeleton-Tests/CreateEmptyRDBMSApplicationTest.class.st +++ b/source/Persistent-API-Skeleton-Tests/CreateEmptyRDBMSApplicationTest.class.st @@ -1,6 +1,6 @@ Class { #name : 'CreateEmptyRDBMSApplicationTest', - #superclass : 'TestCase', + #superclass : 'LaunchpadTest', #category : 'Persistent-API-Skeleton-Tests', #package : 'Persistent-API-Skeleton-Tests' } diff --git a/source/Persistent-API-Skeleton-Tests/PersistentAPIConfigurationTest.class.st b/source/Persistent-API-Skeleton-Tests/PersistentAPIConfigurationTest.class.st index 5d8ddc1..696141e 100644 --- a/source/Persistent-API-Skeleton-Tests/PersistentAPIConfigurationTest.class.st +++ b/source/Persistent-API-Skeleton-Tests/PersistentAPIConfigurationTest.class.st @@ -3,7 +3,7 @@ A PersistentAPIConfigurationTest is a test class for testing the behavior of Per " Class { #name : 'PersistentAPIConfigurationTest', - #superclass : 'TestCase', + #superclass : 'LaunchpadTest', #category : 'Persistent-API-Skeleton-Tests', #package : 'Persistent-API-Skeleton-Tests' } diff --git a/source/Persistent-API-Skeleton/PersistentAPIApplication.class.st b/source/Persistent-API-Skeleton/PersistentAPIApplication.class.st index 14f8242..deac45f 100644 --- a/source/Persistent-API-Skeleton/PersistentAPIApplication.class.st +++ b/source/Persistent-API-Skeleton/PersistentAPIApplication.class.st @@ -140,18 +140,16 @@ PersistentAPIApplication >> basicStop [ ] { #category : 'private - activation/deactivation' } -PersistentAPIApplication >> configureAllowedOriginsTo: api [ +PersistentAPIApplication >> configureAllowedOrigins [ - self stargateConfiguration allowedOrigins value: api + self withAPIDo: [ :api | self stargateConfiguration allowedOrigins value: api ] ] { #category : 'private - activation/deactivation' } PersistentAPIApplication >> createAPI [ - | api | - api := super createAPI. - self configureAllowedOriginsTo: api. - ^ api + super createAPI. + self configureAllowedOrigins ] { #category : 'private - activation/deactivation' }