+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
+36
.tangled/workflows/release.yml
+36
.tangled/workflows/release.yml
···
···
1
+
when:
2
+
- event: ["push"]
3
+
tag: ["*"]
4
+
5
+
engine: nixery
6
+
7
+
dependencies:
8
+
nixpkgs:
9
+
- go
10
+
- less
11
+
- gcc
12
+
13
+
# custom registry
14
+
git+https://tangled.org/regnault.dev/spindle-artifact:
15
+
- spindle-artifact
16
+
17
+
environment:
18
+
CGO_ENABLED: 1
19
+
20
+
steps:
21
+
- name: Setup git
22
+
command: |
23
+
git fetch
24
+
git checkout main
25
+
git pull --tags
26
+
27
+
- name: Build
28
+
command: |
29
+
TAG=$(git tag | tac | head -1)
30
+
go build .
31
+
mv spindle-artifact spindle-artifact-$TAG
32
+
33
+
- name: Upload artifact
34
+
command: |
35
+
TAG=$(git tag | tac | head -1)
36
+
~/.nix-profile/bin/spindle-artifact spindle-artifact $TAG spindle-artifact-$TAG
-16
.tangled/workflows/test.yml
-16
.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
···