From c0b4d83d8c2f6b86487be6a77caa2f04315cdec6 Mon Sep 17 00:00:00 2001 From: newapplesho Date: Sat, 10 Aug 2024 14:14:10 +0900 Subject: [PATCH] added github actions workflows --- .github/dependabot.yml | 19 +++++++++ .github/workflows/ci.yml | 31 +++++++++++++++ .smalltalk.ston | 7 +++- README.md | 2 + .../BaselineOfTwilio.class.st | 8 +++- .../TwilioAccountsTest.class.st | 19 +++++++++ .../TwilioCallsTest.class.st | 19 +++++++++ .../TwilioInstanceResourceTest.class.st | 39 +++++++++++++++++++ .../TwilioMessagesTest.class.st | 20 ++++++++++ .../TwilioRecordsTest.class.st | 20 ++++++++++ .../TwilioUsageTest.class.st | 20 ++++++++++ .../Twilio-REST-Core-Tests/package.st | 1 + 12 files changed, 202 insertions(+), 3 deletions(-) create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/ci.yml create mode 100644 pharo-repository/Twilio-REST-Core-Tests/TwilioAccountsTest.class.st create mode 100644 pharo-repository/Twilio-REST-Core-Tests/TwilioCallsTest.class.st create mode 100644 pharo-repository/Twilio-REST-Core-Tests/TwilioInstanceResourceTest.class.st create mode 100644 pharo-repository/Twilio-REST-Core-Tests/TwilioMessagesTest.class.st create mode 100644 pharo-repository/Twilio-REST-Core-Tests/TwilioRecordsTest.class.st create mode 100644 pharo-repository/Twilio-REST-Core-Tests/TwilioUsageTest.class.st create mode 100644 pharo-repository/Twilio-REST-Core-Tests/package.st diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..87c3b70 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,19 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates + +version: 2 +updates: + - package-ecosystem: "github-actions" + # Workflow files stored in the + # default location of `.github/workflows` + directory: "/" + schedule: + interval: "weekly" + time: "13:00" + timezone: "Asia/Tokyo" + reviewers: + - "newapplesho" + commit-message: + prefix: "ci" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..9311020 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,31 @@ +name: ci + +run-name: "[${{ github.event.repository.name }}] Check: ${{ github.event_name == 'schedule' && 'scheduled' || github.event.pull_request.title }}" + +on: + pull_request: + types: [opened, synchronize, reopened] + schedule: + - cron: "0 21 * * *" + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-22.04 + strategy: + matrix: + smalltalk: [ Pharo64-7.0, Pharo64-8.0, Pharo64-9.0, Pharo64-10, Pharo64-11, Pharo64-12 ] + name: ${{ matrix.smalltalk }} + steps: + - uses: actions/checkout@v3 + - name: Set up Smalltalk CI + uses: hpi-swa/setup-smalltalkCI@v1 + with: + smalltalk-image: ${{ matrix.smalltalk }} + - name: Load Image and Run Tests + run: smalltalkci -s ${{ matrix.smalltalk }} .smalltalk.ston + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + timeout-minutes: 15 diff --git a/.smalltalk.ston b/.smalltalk.ston index 87d9d05..410b1ac 100644 --- a/.smalltalk.ston +++ b/.smalltalk.ston @@ -2,11 +2,14 @@ SmalltalkCISpec { #loading : [ SCIMetacelloLoadSpec { #baseline : 'Twilio', - #directory : 'pharo-repository', + #directory : './pharo-repository', + #load : [ 'CI' ], #platforms : [ #pharo ] } ], #testing : { - #failOnZeroTests : false + #coverage : { + #packages : [ 'Twilio*' ] + } } } \ No newline at end of file diff --git a/README.md b/README.md index 334680e..f10c8f0 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # twilio-smalltalk +[![ci](https://github.com/newapplesho/twilio-smalltalk/actions/workflows/ci.yml/badge.svg)](https://github.com/newapplesho/twilio-smalltalk/actions/workflows/ci.yml) + A Smalltalk library for communicating with the Twilio REST API ([http://twilio.com](http://twilio.com)). # Supported Smalltalk Versions diff --git a/pharo-repository/BaselineOfTwilio/BaselineOfTwilio.class.st b/pharo-repository/BaselineOfTwilio/BaselineOfTwilio.class.st index 8da887d..0defec2 100644 --- a/pharo-repository/BaselineOfTwilio/BaselineOfTwilio.class.st +++ b/pharo-repository/BaselineOfTwilio/BaselineOfTwilio.class.st @@ -11,6 +11,12 @@ BaselineOfTwilio >> baseline: spec [ spec for: #common do: [ spec baseline: 'NeoJSON' with: [ spec repository: 'github://svenvc/NeoJSON/repository' ]. spec - package: 'Twilio-REST-Core'. + package: 'Twilio-REST-Core' with: [ spec requires: #('NeoJSON') ]; + package: 'Twilio-REST-Core-Tests' with: [ spec requires: #( 'Twilio-REST-Core' ) ]. + + spec + group: 'Core' with: #( 'Twilio-REST-Core'); + group: 'Tests' with: #( 'Twilio-REST-Core-Tests' ); + group: 'CI' with: #( 'Tests' ). ]. ] diff --git a/pharo-repository/Twilio-REST-Core-Tests/TwilioAccountsTest.class.st b/pharo-repository/Twilio-REST-Core-Tests/TwilioAccountsTest.class.st new file mode 100644 index 0000000..a96e8c7 --- /dev/null +++ b/pharo-repository/Twilio-REST-Core-Tests/TwilioAccountsTest.class.st @@ -0,0 +1,19 @@ +" +A TwilioAccountsTest is a test class for testing the behavior of TwilioAccounts +" +Class { + #name : #TwilioAccountsTest, + #superclass : #TwilioInstanceResourceTest, + #category : #'Twilio-REST-Core-Tests-Base' +} + +{ #category : #'accessing - defaults' } +TwilioAccountsTest >> defaultTestClass [ + ^ TwilioAccounts +] + +{ #category : #tests } +TwilioAccountsTest >> testResourceUrl [ + + self assert: (instance resourceUrl asString beginsWith: 'https://api.twilio.com/2010-04-01/Accounts') +] diff --git a/pharo-repository/Twilio-REST-Core-Tests/TwilioCallsTest.class.st b/pharo-repository/Twilio-REST-Core-Tests/TwilioCallsTest.class.st new file mode 100644 index 0000000..540cc99 --- /dev/null +++ b/pharo-repository/Twilio-REST-Core-Tests/TwilioCallsTest.class.st @@ -0,0 +1,19 @@ +" +A TwilioCallsTest is a test class for testing the behavior of TwilioCalls +" +Class { + #name : #TwilioCallsTest, + #superclass : #TwilioInstanceResourceTest, + #category : #'Twilio-REST-Core-Tests-Base' +} + +{ #category : #'accessing - defaults' } +TwilioCallsTest >> defaultTestClass [ + ^ TwilioCalls +] + +{ #category : #tests } +TwilioCallsTest >> testResourceUrl [ + self assert: (instance resourceUrl asString beginsWith: 'https://api.twilio.com/2010-04-01/Accounts'). + self assert: (instance resourceUrl asString endsWith: 'Calls.json') +] diff --git a/pharo-repository/Twilio-REST-Core-Tests/TwilioInstanceResourceTest.class.st b/pharo-repository/Twilio-REST-Core-Tests/TwilioInstanceResourceTest.class.st new file mode 100644 index 0000000..8a68df5 --- /dev/null +++ b/pharo-repository/Twilio-REST-Core-Tests/TwilioInstanceResourceTest.class.st @@ -0,0 +1,39 @@ +" +A TwilioInstanceResourceTest is a test class for testing the behavior of TwilioInstanceResource +" +Class { + #name : #TwilioInstanceResourceTest, + #superclass : #TestCase, + #instVars : [ + 'instance' + ], + #category : #'Twilio-REST-Core-Tests-Base' +} + +{ #category : #testing } +TwilioInstanceResourceTest class >> isAbstract [ + ^ self == TwilioInstanceResourceTest +] + +{ #category : #'accessing - defaults' } +TwilioInstanceResourceTest >> defaultTestClass [ + ^ self subclassResponsibility +] + +{ #category : #running } +TwilioInstanceResourceTest >> setUp [ + super setUp. + instance := self defaultTestClass new + +] + +{ #category : #running } +TwilioInstanceResourceTest >> tearDown [ + instance := nil. + super tearDown +] + +{ #category : #tests } +TwilioInstanceResourceTest >> testResourceUrl [ + self subclassResponsibility +] diff --git a/pharo-repository/Twilio-REST-Core-Tests/TwilioMessagesTest.class.st b/pharo-repository/Twilio-REST-Core-Tests/TwilioMessagesTest.class.st new file mode 100644 index 0000000..12c1cb8 --- /dev/null +++ b/pharo-repository/Twilio-REST-Core-Tests/TwilioMessagesTest.class.st @@ -0,0 +1,20 @@ +" +A TwilioMessagesTest is a test class for testing the behavior of TwilioMessages +" +Class { + #name : #TwilioMessagesTest, + #superclass : #TwilioInstanceResourceTest, + #category : #'Twilio-REST-Core-Tests-Base' +} + +{ #category : #'accessing - defaults' } +TwilioMessagesTest >> defaultTestClass [ + ^ TwilioMessages +] + +{ #category : #tests } +TwilioMessagesTest >> testResourceUrl [ + + self assert: (instance resourceUrl asString beginsWith: 'https://api.twilio.com/2010-04-01/Accounts'). + self assert: (instance resourceUrl asString endsWith: 'Messages.json') +] diff --git a/pharo-repository/Twilio-REST-Core-Tests/TwilioRecordsTest.class.st b/pharo-repository/Twilio-REST-Core-Tests/TwilioRecordsTest.class.st new file mode 100644 index 0000000..92a0460 --- /dev/null +++ b/pharo-repository/Twilio-REST-Core-Tests/TwilioRecordsTest.class.st @@ -0,0 +1,20 @@ +" +A TwilioRecordsTest is a test class for testing the behavior of TwilioRecords +" +Class { + #name : #TwilioRecordsTest, + #superclass : #TwilioInstanceResourceTest, + #category : #'Twilio-REST-Core-Tests-Base' +} + +{ #category : #'accessing - defaults' } +TwilioRecordsTest >> defaultTestClass [ + ^ TwilioRecords +] + +{ #category : #tests } +TwilioRecordsTest >> testResourceUrl [ + + self assert: (instance resourceUrl asString beginsWith: 'https://api.twilio.com/2010-04-01/Accounts'). + self assert: (instance resourceUrl asString endsWith: 'Usage/Records.json') +] diff --git a/pharo-repository/Twilio-REST-Core-Tests/TwilioUsageTest.class.st b/pharo-repository/Twilio-REST-Core-Tests/TwilioUsageTest.class.st new file mode 100644 index 0000000..07945e0 --- /dev/null +++ b/pharo-repository/Twilio-REST-Core-Tests/TwilioUsageTest.class.st @@ -0,0 +1,20 @@ +" +A TwilioUsageTest is a test class for testing the behavior of TwilioUsage +" +Class { + #name : #TwilioUsageTest, + #superclass : #TwilioInstanceResourceTest, + #category : #'Twilio-REST-Core-Tests-Base' +} + +{ #category : #'accessing - defaults' } +TwilioUsageTest >> defaultTestClass [ + ^ TwilioUsage +] + +{ #category : #test } +TwilioUsageTest >> testResourceUrl [ + + self assert: (instance resourceUrl asString beginsWith: 'https://api.twilio.com/2010-04-01/Accounts'). + self assert: (instance resourceUrl asString endsWith: 'Usage.json') +] diff --git a/pharo-repository/Twilio-REST-Core-Tests/package.st b/pharo-repository/Twilio-REST-Core-Tests/package.st new file mode 100644 index 0000000..d24562a --- /dev/null +++ b/pharo-repository/Twilio-REST-Core-Tests/package.st @@ -0,0 +1 @@ +Package { #name : #'Twilio-REST-Core-Tests' }