Compare commits
44 Commits
deployed/v
...
master
Author | SHA1 | Date |
---|---|---|
giles | fe653240e4 | |
gilesb | e9f787b82b | |
gilesb | 381b1211b6 | |
gilesb | 3f8a784ea0 | |
gilesb | 6a76cd6dc2 | |
gilesb | bf4335c8b8 | |
gilesb | f75a54e273 | |
gilesb | 6f92610c26 | |
gilesb | 9c8429ae68 | |
gilesb | 369b5ffd29 | |
gilesb | e535cb3c62 | |
gilesb | d1a1d14664 | |
gilesb | 47695a0523 | |
gilesb | 7dbab1a28f | |
gilesb | e3199a06ec | |
giles | 79136f6882 | |
gilesb | f35b8f67af | |
gilesb | d3c03369aa | |
gilesb | b21f3838d4 | |
gilesb | b698ad512d | |
giles | 3c15598faa | |
gilesb | 64d8cb6f40 | |
giles | ed41a9707b | |
batch-bot | 6f5c1153df | |
batch-bot | a6a2813005 | |
giles | ae69fb63f5 | |
gilesb | eb83b0e698 | |
batch-bot | b404b9f516 | |
batch-bot | 1bddb0c47c | |
giles | 6e1eaf6f2e | |
gilesb | ccec5b4261 | |
gilesb | 96d6004f26 | |
giles | c66ab8b3fa | |
gilesb | cc68a84653 | |
giles | 88b5632c3b | |
gilesb | 8720e2649e | |
giles | 86837dc244 | |
gilesb | 45a8210eea | |
giles | 8bb49ece67 | |
gilesb | 9ab843044a | |
giles | e3ac1aaa80 | |
gilesb | 19d2937141 | |
giles | f47551c0fe | |
giles | 2439f1c76e |
|
@ -0,0 +1,13 @@
|
||||||
|
name: Changelog
|
||||||
|
on:
|
||||||
|
release:
|
||||||
|
types:
|
||||||
|
- created
|
||||||
|
jobs:
|
||||||
|
changelog:
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
steps:
|
||||||
|
- name: "✏️ Generate release changelog"
|
||||||
|
uses: heinrichreimer/action-github-changelog-generator@v2.3
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.BOT_TOKEN }}
|
|
@ -6,23 +6,11 @@ on:
|
||||||
- closed
|
- closed
|
||||||
- deleted
|
- deleted
|
||||||
branches:
|
branches:
|
||||||
- 'master'
|
- master
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
if_merged:
|
|
||||||
if: github.event.pull_request.merged == true
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: delete develop branch
|
|
||||||
id: delete_develop_branch
|
|
||||||
run: git push origin --delete ${{ github.head_ref }}
|
|
||||||
continue-on-error: true
|
|
||||||
- uses: mainmatter/continue-on-error-comment@v1
|
|
||||||
with:
|
|
||||||
repo-token: ${{ secrets.BOT_TOKEN }}
|
|
||||||
outcome: ${{ steps.delete_develop_branch.outcome }}
|
|
||||||
test-id: Error code ${{ matrix.code }}
|
|
||||||
delete-develop:
|
delete-develop:
|
||||||
|
if: ${{ ! startsWith(github.head_ref, 'develop/') }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: http://sigyl.com:3000/actions/checkout@v3.5.4
|
- uses: http://sigyl.com:3000/actions/checkout@v3.5.4
|
||||||
|
@ -42,4 +30,6 @@ jobs:
|
||||||
firstString=${{ github.head_ref }}
|
firstString=${{ github.head_ref }}
|
||||||
secondString="build"
|
secondString="build"
|
||||||
echo ::set-env name=BUILD_BRANCH::${firstString/develop\//"$secondString"\/}s
|
echo ::set-env name=BUILD_BRANCH::${firstString/develop\//"$secondString"\/}s
|
||||||
|
- name: delete build branch
|
||||||
|
run: git push origin --delete ${{ env.BUILD_BRANCH }}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
name: build-develop-branch
|
name: master-pushed
|
||||||
run-name: ${{ github.actor }} is learning GitHub Actions
|
run-name: ${{ github.actor }} is learning GitHub Actions
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
|
@ -19,6 +19,6 @@ jobs:
|
||||||
token: ${{ secrets.BOT_TOKEN }}
|
token: ${{ secrets.BOT_TOKEN }}
|
||||||
- name: bump release
|
- name: bump release
|
||||||
run: |
|
run: |
|
||||||
../tea r ls -o=simple
|
export version=$(../tea r ls -o=simple | head -n 1 | tr " " "\n" | head -n 1 | awk -F. '{$NF = $NF + 1;} 1' | sed 's/ /./g')
|
||||||
version="$(../tea r ls -o=simple | head -n 1 | tr " " "\n" | head -n 1 | awk -F. '{$NF = $NF + 1;} 1' | sed 's/ /./g')"
|
|
||||||
../tea r c --note="this isrelease ${version}" --tag=${version} --title=${version} --target=${{ github.sha }}
|
../tea r c --note="this isrelease ${version}" --tag=${version} --title=${version} --target=${{ github.sha }}
|
||||||
|
echo ::set-env name=VERSION::$version
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches: [master]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
prettier:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: http://sigyl.com:3000/actions/checkout@v3.5.4
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.BOT_TOKEN }}
|
||||||
|
# Make sure the actual branch is checked out when running on pull requests
|
||||||
|
ref: ${{ github.head_ref }}
|
||||||
|
# This is important to fetch the changes to the previous commit
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Prettify code
|
||||||
|
uses: creyD/prettier_action@v4.3
|
||||||
|
with:
|
||||||
|
# This part is also where you can pass other options, for example:
|
||||||
|
prettier_options: --write **/*.{js,md}
|
||||||
|
only_changed: true
|
|
@ -31,4 +31,4 @@ jobs:
|
||||||
git config --global user.email "username@users.noreply.github.com"
|
git config --global user.email "username@users.noreply.github.com"
|
||||||
git add -A
|
git add -A
|
||||||
git commit -a -m "${{ github.ref_name }} -> refs/heads/deployed/${{ github.ref_name }} "
|
git commit -a -m "${{ github.ref_name }} -> refs/heads/deployed/${{ github.ref_name }} "
|
||||||
git push origin HEAD:refs/heads/deployed/${{ github.ref_name }}
|
git push -f origin HEAD:refs/heads/deployed/${{ github.ref_name }}
|
201
README.md
201
README.md
|
@ -1,101 +1,100 @@
|
||||||
# batch-example
|
# batch-example
|
||||||
|
|
||||||
This repository will store and allow versioning and approval of a batch configuration.
|
This repository will store and allow versioning and approval of a batch configuration.
|
||||||
|
|
||||||
This repository **only** contains exported configuration. It does not contain any binary files (eg equipment-model.cfg nor system state or log files). These are excluded using the **.gitignore** file.
|
This repository **only** contains exported configuration. It does not contain any binary files (eg equipment-model.cfg nor system state or log files). These are excluded using the **.gitignore** file.
|
||||||
|
|
||||||
## change process
|
## change process
|
||||||
|
|
||||||
tea is here (i had to change docker file to just be based on node:latest)
|
tea is here (i had to change docker file to just be based on node:latest)
|
||||||
|
|
||||||
https://gitea.com/gitea/tea/src/branch/main/docs/CLI.md
|
https://gitea.com/gitea/tea/src/branch/main/docs/CLI.md
|
||||||
|
|
||||||
|
|
||||||
On ?tag ? push to master
|
On ?tag ? push to master
|
||||||
clone master
|
clone master
|
||||||
branch deployed
|
branch deployed
|
||||||
yml -> xml
|
yml -> xml
|
||||||
push deployed
|
push deployed
|
||||||
|
|
||||||
|
|
||||||
|
pull to production PC and import
|
||||||
pull to production PC and import
|
|
||||||
|
pull to development, import, modify, export
|
||||||
pull to development, import, modify, export
|
push from development to format branch
|
||||||
push from development to format branch
|
|
||||||
|
on format-branch pull, xml -> yml, push to product-development and PR
|
||||||
on format-branch pull, xml -> yml, push to product-development and PR
|
|
||||||
|
### FTBatch development pc on development branch
|
||||||
### FTBatch development pc on development branch
|
|
||||||
|
```sh
|
||||||
```sh
|
?git branch -D format-branch
|
||||||
?git branch -D format-branch
|
git checkout format-branch
|
||||||
git checkout format-branch
|
git merge deployed
|
||||||
git merge deployed
|
|
||||||
|
```
|
||||||
```
|
|
||||||
|
make changes and export files
|
||||||
make changes and export files
|
|
||||||
|
commit and push back to server
|
||||||
commit and push back to server
|
|
||||||
|
```sh
|
||||||
```sh
|
git add -A
|
||||||
git add -A
|
git commit
|
||||||
git commit
|
git push origin format-branch
|
||||||
git push origin format-branch
|
```
|
||||||
```
|
|
||||||
|
### format-bot pc
|
||||||
### format-bot pc
|
|
||||||
|
```sh
|
||||||
```sh
|
git branch -D format-branch
|
||||||
git branch -D format-branch
|
git fetch origin
|
||||||
git fetch origin
|
git checkout -b format-branch
|
||||||
git checkout -b format-branch
|
git checkout master
|
||||||
git checkout master
|
git pull
|
||||||
git pull
|
git branch -D product-development
|
||||||
git branch -D product-development
|
git checkout -b product-development
|
||||||
git checkout -b product-development
|
git merge --squash --no-commit --no-ff --strategyoption=theirs format-branch
|
||||||
git merge --squash --no-commit --no-ff --strategyoption=theirs format-branch
|
|
||||||
|
```
|
||||||
```
|
|
||||||
|
run the formatter
|
||||||
run the formatter
|
|
||||||
|
```sh
|
||||||
```sh
|
git add -A
|
||||||
git add -A
|
git commit
|
||||||
git commit
|
git push origin product-development
|
||||||
git push origin product-development
|
git push origin --delete format-branch
|
||||||
git push origin --delete format-branch
|
|
||||||
|
```
|
||||||
```
|
|
||||||
|
create a pull request
|
||||||
create a pull request
|
|
||||||
|
```sh
|
||||||
```sh
|
git fetch --tags
|
||||||
git fetch --tags
|
gotea pr c --base=master --head=product-development --repo another-user/batch-example --title="WIP: this is a PR! it rocks!"
|
||||||
gotea pr c --base=master --head=product-development --repo another-user/batch-example --title="WIP: this is a PR! it rocks!"
|
|
||||||
|
```
|
||||||
```
|
|
||||||
|
closing a pull request (not used)
|
||||||
closing a pull request (not used)
|
```sh
|
||||||
```sh
|
gotea pr close --repo another-user/batch-example 11
|
||||||
gotea pr close --repo another-user/batch-example 11
|
```
|
||||||
```
|
|
||||||
|
build
|
||||||
build
|
|
||||||
|
```sh
|
||||||
```sh
|
|
||||||
|
git checkout master
|
||||||
git checkout master
|
git pull
|
||||||
git pull
|
git checkout deployed
|
||||||
git checkout deployed
|
git merge master
|
||||||
git merge master
|
```
|
||||||
```
|
|
||||||
|
make xml files
|
||||||
make xml files
|
|
||||||
|
```sh
|
||||||
```sh
|
git add -A
|
||||||
git add -A
|
git commit
|
||||||
git commit
|
git push origin deployed
|
||||||
git push origin deployed
|
```
|
||||||
```
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,160 @@
|
||||||
|
/**
|
||||||
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||||
|
*
|
||||||
|
* This source code is licensed under the MIT license found in the
|
||||||
|
* LICENSE file in the root directory of this source tree.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import * as React from "react";
|
||||||
|
import ReactVersion from "shared/ReactVersion";
|
||||||
|
import { LegacyRoot } from "react-reconciler/src/ReactRootTags";
|
||||||
|
import {
|
||||||
|
createContainer,
|
||||||
|
updateContainer,
|
||||||
|
injectIntoDevTools,
|
||||||
|
} from "react-reconciler/src/ReactFiberReconciler";
|
||||||
|
import Transform from "art/core/transform";
|
||||||
|
import Mode from "art/modes/current";
|
||||||
|
import FastNoSideEffects from "art/modes/fast-noSideEffects";
|
||||||
|
|
||||||
|
import { TYPES, childrenAsString } from "./ReactARTInternals";
|
||||||
|
|
||||||
|
Mode.setCurrent(
|
||||||
|
// Change to 'art/modes/dom' for easier debugging via SVG
|
||||||
|
FastNoSideEffects,
|
||||||
|
);
|
||||||
|
|
||||||
|
/** Declarative fill-type objects; API design not finalized */
|
||||||
|
|
||||||
|
const slice = Array.prototype.slice;
|
||||||
|
|
||||||
|
class LinearGradient {
|
||||||
|
constructor(stops, x1, y1, x2, y2) {
|
||||||
|
this._args = slice.call(arguments);
|
||||||
|
}
|
||||||
|
|
||||||
|
applyFill(node) {
|
||||||
|
node.fillLinear.apply(node, this._args);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class RadialGradient {
|
||||||
|
constructor(stops, fx, fy, rx, ry, cx, cy) {
|
||||||
|
this._args = slice.call(arguments);
|
||||||
|
}
|
||||||
|
|
||||||
|
applyFill(node) {
|
||||||
|
node.fillRadial.apply(node, this._args);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Pattern {
|
||||||
|
constructor(url, width, height, left, top) {
|
||||||
|
this._args = slice.call(arguments);
|
||||||
|
}
|
||||||
|
|
||||||
|
applyFill(node) {
|
||||||
|
node.fillImage.apply(node, this._args);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** React Components */
|
||||||
|
|
||||||
|
class Surface extends React.Component {
|
||||||
|
componentDidMount() {
|
||||||
|
const { height, width } = this.props;
|
||||||
|
|
||||||
|
this._surface = Mode.Surface(+width, +height, this._tagRef);
|
||||||
|
|
||||||
|
this._mountNode = createContainer(
|
||||||
|
this._surface,
|
||||||
|
LegacyRoot,
|
||||||
|
null,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
"",
|
||||||
|
);
|
||||||
|
updateContainer(this.props.children, this._mountNode, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
componentDidUpdate(prevProps, prevState) {
|
||||||
|
const props = this.props;
|
||||||
|
|
||||||
|
if (props.height !== prevProps.height || props.width !== prevProps.width) {
|
||||||
|
this._surface.resize(+props.width, +props.height);
|
||||||
|
}
|
||||||
|
|
||||||
|
updateContainer(this.props.children, this._mountNode, this);
|
||||||
|
|
||||||
|
if (this._surface.render) {
|
||||||
|
this._surface.render();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
componentWillUnmount() {
|
||||||
|
updateContainer(null, this._mountNode, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
// This is going to be a placeholder because we don't know what it will
|
||||||
|
// actually resolve to because ART may render canvas, vml or svg tags here.
|
||||||
|
// We only allow a subset of properties since others might conflict with
|
||||||
|
// ART's properties.
|
||||||
|
const props = this.props;
|
||||||
|
|
||||||
|
// TODO: ART's Canvas Mode overrides surface title and cursor
|
||||||
|
const Tag = Mode.Surface.tagName;
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Tag
|
||||||
|
ref={(ref) => (this._tagRef = ref)}
|
||||||
|
accessKey={props.accessKey}
|
||||||
|
className={props.className}
|
||||||
|
draggable={props.draggable}
|
||||||
|
role={props.role}
|
||||||
|
style={props.style}
|
||||||
|
tabIndex={props.tabIndex}
|
||||||
|
title={props.title}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Text extends React.Component {
|
||||||
|
constructor(props) {
|
||||||
|
super(props);
|
||||||
|
// We allow reading these props. Ideally we could expose the Text node as
|
||||||
|
// ref directly.
|
||||||
|
["height", "width", "x", "y"].forEach((key) => {
|
||||||
|
Object.defineProperty(this, key, {
|
||||||
|
get: function () {
|
||||||
|
return this._text ? this._text[key] : undefined;
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
render() {
|
||||||
|
// This means you can't have children that render into strings...
|
||||||
|
const T = TYPES.TEXT;
|
||||||
|
return (
|
||||||
|
<T {...this.props} ref={(t) => (this._text = t)}>
|
||||||
|
{childrenAsString(this.props.children)}
|
||||||
|
</T>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
injectIntoDevTools({
|
||||||
|
findFiberByHostInstance: () => null,
|
||||||
|
bundleType: __DEV__ ? 1 : 0,
|
||||||
|
version: ReactVersion,
|
||||||
|
rendererPackageName: "react-art",
|
||||||
|
});
|
||||||
|
|
||||||
|
/** API */
|
||||||
|
|
||||||
|
export const ClippingRectangle = TYPES.CLIPPING_RECTANGLE;
|
||||||
|
export const Group = TYPES.GROUP;
|
||||||
|
export const Shape = TYPES.SHAPE;
|
||||||
|
export const Path = Mode.Path;
|
||||||
|
export { LinearGradient, Pattern, RadialGradient, Surface, Text, Transform };
|
Loading…
Reference in New Issue