+67
.tangled/workflows/next-tag.yml
+67
.tangled/workflows/next-tag.yml
···
···
1
+
when:
2
+
- event: ["push", "manual"]
3
+
branch: ["main"]
4
+
5
+
engine: nixery
6
+
7
+
dependencies:
8
+
nixpkgs:
9
+
- semver-tool
10
+
- openssh
11
+
- less
12
+
13
+
steps:
14
+
- name: Setup user
15
+
command: |
16
+
echo "root:x:0:0::$HOME:/usr/bin/bash" >> /etc/passwd
17
+
18
+
- name: Setup SSH
19
+
command: |
20
+
mkdir -p $HOME/.ssh
21
+
echo "-----BEGIN OPENSSH PRIVATE KEY-----" > $HOME/.ssh/privkey
22
+
printf $SSH_KEY >> $HOME/.ssh/privkey
23
+
echo "-----END OPENSSH PRIVATE KEY-----" >> $HOME/.ssh/privkey
24
+
chmod 600 $HOME/.ssh/privkey
25
+
ssh-keyscan -t rsa tangled.org >> $HOME/.ssh/known_hosts
26
+
27
+
- name: Setup SSH repo
28
+
command: |
29
+
git config --global user.email "evann.regnault@pm.me"
30
+
git config --global user.name "Evann Regnault"
31
+
git fetch
32
+
git checkout main
33
+
git pull --tags
34
+
URL=$(git remote get-url origin)
35
+
REPO=${URL#*//*/}
36
+
git remote set-url origin "git@tangled.org:"$REPO
37
+
38
+
- name: Next tag
39
+
command: |
40
+
TAG=$(git tag | tac | head -1)
41
+
42
+
if [ "$TAG" == "" ]; then
43
+
TAG="0.0.0"
44
+
fi
45
+
46
+
COMMIT=$(git log -1 --pretty=%B)
47
+
48
+
case "${COMMIT^^}" in
49
+
MAJOR*) TYPE="major" ;;
50
+
MINOR*) TYPE="minor" ;;
51
+
PATCH*) TYPE="patch" ;;
52
+
*) TYPE="" ;;
53
+
esac
54
+
55
+
if [ $TYPE ]; then
56
+
semver bump $TYPE $TAG > tag
57
+
fi
58
+
59
+
- name: Push new tag
60
+
environment:
61
+
GIT_SSH_COMMAND: "ssh -i $HOME/.ssh/privkey -o IdentitiesOnly=yes"
62
+
command: |
63
+
if [ -f "tag" ]; then
64
+
TAG=$(cat tag)
65
+
git tag -a $TAG -m "Release $TAG"
66
+
git push --tags
67
+
fi
+29
.tangled/workflows/release.yml
+29
.tangled/workflows/release.yml
···
···
1
+
when:
2
+
- event: ["push"]
3
+
branch: ["main"]
4
+
tag: ["*"]
5
+
6
+
engine: nixery
7
+
8
+
dependencies:
9
+
nixpkgs:
10
+
- go
11
+
- less
12
+
- gcc
13
+
14
+
# custom registry
15
+
git+https://tangled.org/regnault.dev/spindle-artifact:
16
+
- spindle-artifact
17
+
18
+
environment:
19
+
CGO_ENABLED: 1
20
+
21
+
steps:
22
+
- name: Build
23
+
command: |
24
+
go build .
25
+
mv spindle-artifact spindle-artifact-$TANGLED_REF_NAME
26
+
27
+
- name: Upload artifact
28
+
command: |
29
+
~/.nix-profile/bin/spindle-artifact spindle-artifact $TANGLED_REF_NAME spindle-artifact-$TANGLED_REF_NAME
+17
-7
.tangled/workflows/test.yml
+17
-7
.tangled/workflows/test.yml
···
1
when:
2
- event: ["push", "manual"]
3
-
branch: ["main"]
4
5
engine: nixery
6
7
dependencies:
8
-
# custom registry
9
-
git+https://tangled.org/regnault.dev/spindle-artifact:
10
-
- spindle-artifact
11
12
steps:
13
-
- name: Upload file
14
command: |
15
-
echo "a" > a.txt
16
-
~/.nix-profile/bin/spindle-artifact webfishing-macos-atproto 1.0 a.txt
···
1
when:
2
- event: ["push", "manual"]
3
+
branch: ["test"]
4
+
tag: ["*"]
5
6
engine: nixery
7
8
dependencies:
9
+
nixpkgs:
10
+
- semver-tool
11
+
- openssh
12
+
- less
13
14
steps:
15
+
- name: Test
16
command: |
17
+
echo $TANGLED_REPO_KNOT
18
+
echo $TANGLED_REPO_DID
19
+
echo $TANGLED_REPO_DID
20
+
echo $TANGLED_REPO_DEFAULT_BRANCH
21
+
echo $TANGLED_REPO_URL
22
+
echo $TANGLED_REF
23
+
echo $TANGLED_REF_NAME
24
+
echo $TANGLED_REF_TYPE
25
+
echo $TANGLED_SHA
26
+
echo $TANGLED_COMMIT_SHA