Skip to content

Commit

Permalink
Merge pull request #1 from r-cemper/master
Browse files Browse the repository at this point in the history
add Docker support + initial :allias
  • Loading branch information
cophilot authored Feb 12, 2024
2 parents d0a2d32 + 61575a8 commit 8a361c6
Show file tree
Hide file tree
Showing 17 changed files with 421 additions and 2 deletions.
51 changes: 51 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
// https://github.com/microsoft/vscode-dev-containers/tree/v0.224.2/containers/docker-existing-docker-compose
{
"name": "intersystems-iris-dev-template devcontainer",

// Use the same recipe as creates the container we use when working locally.
"dockerComposeFile": [
"../docker-compose.yml"
],

"service": "iris",

"workspaceFolder": "/home/irisowner/dev",

// This provides the elements of the connection object which require different values when connecting to the workspace within the container,
// versus those in .vscode/settings.json which apply when operating locally on the workspace files.
// We define and use a `server` so that (a) a user-level `objectscript.conn.server` properly doesn't override us, and (b) so InterSystems
// Server Manager can also be used.
"settings": {
"objectscript.conn" :{
"server": "devcontainer",
"active": true,
},
"intersystems.servers": {
"devcontainer": {
"username": "SuperUser",
"password": "SYS",
"webServer": {
"scheme": "http",
"host": "127.0.0.1",
"port": 52773
},
},
},
"python.defaultInterpreterPath":"/usr/irissys/bin/irispython"
},

// Add the IDs of extensions we want installed when the container is created.
// Currently (March 2022) `intersystems.language-server` fails to run within the container (alpine platform).
// Issue is probably https://github.com/intersystems/language-server/issues/185 and/or https://github.com/intersystems/language-server/issues/32
// Crash gets reported to the user, after which `intersystems-community.vscode-objectscript` falls back to
// using its TextMate grammar for code coloring.
"extensions": [
"ms-python.python",
"ms-python.vscode-pylance",
"intersystems-community.vscode-objectscript",
"intersystems.language-server",
"intersystems-community.servermanager",
"ms-vscode.docker"
],
}
3 changes: 3 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
**/.DS_Store
iris-main.log
.git
19 changes: 19 additions & 0 deletions .github/workflows/build-push-gcr.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Cloud Run Deploy

on:
push:
branches:
- master
- main
workflow_dispatch:

jobs:
deploy:
uses: intersystems-community/demo-deployment/.github/workflows/deployment.yml@master
with:
# Replace the name: parameter below to have your application deployed at
# https://project-name.demo.community.intersystems.com/
name: project-name
secrets:
# Do not forget to add Secret in GitHub Repoository Settings with name SERVICE_ACCOUNT_KEY
SERVICE_ACCOUNT_KEY: ${{ secrets.SERVICE_ACCOUNT_KEY }}
28 changes: 28 additions & 0 deletions .github/workflows/bump-module-version.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: versionbump

on:
push:
branches:
- master
- main
release:
types:
- released
permissions:
contents: write

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Bump version
run: |
git config --global user.name 'ProjectBot'
git config --global user.email 'bot@users.noreply.github.com'
VERSION=$(sed -n '0,/.*<Version>\(.*\)<\/Version>.*/s//\1/p' module.xml)
VERSION=`echo $VERSION | awk -F. '/[0-9]+\./{$NF++;print}' OFS=.`
sed -i "0,/<Version>\(.*\)<\/Version>/s//<Version>$VERSION<\/Version>/" module.xml
git add module.xml
git commit -m 'auto bump version'
git push
25 changes: 25 additions & 0 deletions .github/workflows/github-registry.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Build and publish a Docker image to ghcr.io
on:

# publish on pushes to the main branch (image tagged as "latest")
# image name: will be: ghcr.io/${{ github.repository }}:latest
# e.g.: ghcr.io/intersystems-community/intersystems-iris-dev-template:latest
push:
branches:
- master

jobs:
docker_publish:
runs-on: "ubuntu-20.04"

steps:
- uses: actions/checkout@v2

# https://github.com/marketplace/actions/push-to-ghcr
- name: Build and publish a Docker image for ${{ github.repository }}
uses: macbre/push-to-ghcr@master
with:
image_name: ${{ github.repository }}
github_token: ${{ secrets.GITHUB_TOKEN }}
# optionally push to the Docker Hub (docker.io)
# docker_io_token: ${{ secrets.DOCKER_IO_ACCESS_TOKEN }} # see https://hub.docker.com/settings/security
12 changes: 12 additions & 0 deletions .github/workflows/objectscript-quality.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
name: objectscriptquality
on: push

jobs:
linux:
name: Linux build
runs-on: ubuntu-latest

steps:
- name: Execute ObjectScript Quality Analysis
run: wget https://raw.githubusercontent.com/litesolutions/objectscriptquality-jenkins-integration/master/iris-community-hook.sh && sh ./iris-community-hook.sh

28 changes: 28 additions & 0 deletions .github/workflows/runtests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: unittest

on:
push:
branches:
- master
- main
pull_request:
branches:
- master
- main
release:
types:
- released

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Build and Test
uses: docker/build-push-action@v2
with:
context: .
push: false
load: true
tags: ${{ github.repository }}:${{ github.sha }}
build-args: TESTS=1
7 changes: 7 additions & 0 deletions .iris_init
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
:alias enablebi do EnableDeepSee^%SYS.cspServer("/csp/"_$zcvt($namespace,"L")) ;
:alias ssl x "n $namespace set $namespace=""%SYS"", name=$S(""$1""="""":""DefaultSSL"",1:""$1"") do:'##class(Security.SSLConfigs).Exists(name) ##class(Security.SSLConfigs).Create(name)" ;
:alias createdb do $SYSTEM.SQL.Execute("CREATE DATABASE $1") ;
:alias installipm s r=##class(%Net.HttpRequest).%New(),r.Server="pm.community.intersystems.com",r.SSLConfiguration="ISC.FeatureTracker.SSL.Config" d r.Get("/packages/zpm/latest/installer"),$system.OBJ.LoadStream(r.HttpResponse.Data,"c") ;
:alias add%all x "n $namespace set $namespace=""%SYS"",P(""Globals"")=""%DEFAULTDB"",sc=##class(Config.Namespaces).Create(""%All"",.P)" ;
:alias exportglobal d $System.OBJ.Export("$1.GBL","$2$1.xml") ;
:alias rcc Write !,"Hi "_$namespace,! ;
17 changes: 17 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"recommendations": [
"eamodio.gitlens",
"georgejames.gjlocate",
"github.copilot",
"intersystems-community.servermanager",
"intersystems-community.sqltools-intersystems-driver",
"intersystems-community.testingmanager",
"intersystems-community.vscode-objectscript",
"intersystems.language-server",
"mohsen1.prettify-json",
"ms-azuretools.vscode-docker",
"ms-python.python",
"ms-python.vscode-pylance",
"ms-vscode-remote.remote-containers"
]
}
18 changes: 18 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"version": "0.2.0",
"configurations": [
{
"type": "objectscript",
"request": "launch",
"name": "ObjectScript Debug Class",
"program": "##class(dc.sample.ObjectScript).Test()",
},
{
"type": "objectscript",
"request": "attach",
"name": "ObjectScript Attach",
"processId": "${command:PickProcess}",
"system": true
}
]
}
22 changes: 22 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"files.associations": {

"Dockerfile*": "dockerfile",
"iris.script": "objectscript"
},
"objectscript.conn" :{
"active": true,
"ns": "IRISAPP",
"username": "_SYSTEM",
"password": "SYS",
"docker-compose": {
"service": "iris",
"internalPort": 52773
},
"links": {
"UnitTest Portal": "${serverUrl}/csp/sys/%25UnitTest.Portal.Home.cls?$NAMESPACE=IRISAPP"
}
},
"intersystems.testingManager.client.relativeTestRoot": "tests"

}
8 changes: 7 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,13 @@

---

## [v0.0.4](https://github.com/intersystems-dach/MTConnect-ObjectScript/tree/0.0.4) (2023-2-9)
## v0.0.5 (2024-2-9)

- Packed for _Docker_ support + initial :alias

---

## v0.0.4 (2023-2-9)

- Packed for _ZPM_

Expand Down
12 changes: 12 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# The most minimumalistic dockerfile possible.
# No embedded python support, no unit-testing, no aliases.
ARG IMAGE=intersystemsdc/iris-community
FROM $IMAGE

WORKDIR /home/irisowner/dev
COPY .iris_init /home/irisowner/.iris_init

RUN --mount=type=bind,src=.,dst=. \
iris start IRIS && \
iris session IRIS < iris.script && \
iris stop IRIS quietly
29 changes: 28 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -215,11 +215,38 @@ An example for how to use the [ClassBuilder Operation](https://github.com/inters

- _no known bugs_

---
## DOCKER Support
### Prerequisites
Make sure you have [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) and [Docker desktop](https://www.docker.com/products/docker-desktop) installed.
### Installation
Clone/git pull the repo into any local directory
```
$ git clone https://github.com/intersystems-dach/MTConnect-ObjectScript.git
```
Open the terminal in this directory and run:
```
$ docker-compose build
```
Run IRIS container with your project:
```
$ docker-compose up -d
```
Test from docker console
```
$ docker-compose exec iris1 iris session iris
USER>
```
or using **WebTerminal**
```
http://localhost:42773/terminal/
```

---

## [Release Notes](https://github.com/intersystems-dach/MTConnect-ObjectScript/blob/master/CHANGELOG.md)

### [v0.0.4](https://github.com/intersystems-dach/MTConnect-ObjectScript/tree/0.0.4)
### [v0.0.5](https://github.com/intersystems-dach/MTConnect-ObjectScript/tree/0.0.5)

---

Expand Down
Loading

0 comments on commit 8a361c6

Please sign in to comment.