Merge pull request 'Improve CI' (#128) from feat/ci into master

Reviewed-on: #128
This commit is contained in:
Lucas Schwiderski 2023-11-13 16:18:35 +01:00
commit 6eb3137429
6 changed files with 83 additions and 8 deletions

View file

@ -22,7 +22,6 @@ resources:
source:
uri: https://git.sclu1034.dev/bitsquid_dt/dtmt
jobs:
- name: set-pipelines
plan:
@ -42,5 +41,3 @@ jobs:
gitea_api_key: ((gitea_api_key))
instance_vars:
pr: ((.:pr.number))

View file

@ -1,3 +1,4 @@
# yaml-language-server: $schema=https://raw.githubusercontent.com/cappyzawa/concourse-pipeline-jsonschema/master/concourse_jsonschema.json#/definitions/Config
---
# The actual CI pipeline that is run per branch
@ -6,7 +7,7 @@ resources:
- name: repo
type: git
source:
uri: https://git.sclu1034.dev/bitsquid_dt/dtmt
uri: http://forgejo:3000/bitsquid_dt/dtmt
branch: ((pr.head.ref))
jobs:
@ -34,6 +35,7 @@ jobs:
target: msvc
output: artifact
ref: ((.:ref))
gitea_url: http://forgejo:3000
gitea_api_key: ((gitea_api_key))
- name: build-linux
@ -48,4 +50,13 @@ jobs:
target: linux
output: artifact
ref: ((.:ref))
gitea_url: http://forgejo:3000
gitea_api_key: ((gitea_api_key))
- task: upload
file: repo/.ci/tasks/upload.yml
vars:
input: artifact
pr: ((.:pr))
gitea_api_key: ((gitea_api_key))
gitea_user: bitsquid_dt
gitea_url: http://forgejo:3000

View file

@ -1,7 +1,9 @@
# yaml-language-server: $schema=https://raw.githubusercontent.com/cappyzawa/concourse-pipeline-jsonschema/master/concourse_jsonschema.json#/definitions/TaskConfig
---
platform: linux
image_resource:
name: ctmt-bi-base-((target))
type: registry-image
source:
repository: registry.local:5000/dtmt-ci-base-((target))
@ -11,14 +13,18 @@ inputs:
- name: repo
outputs:
- name: ((output))
- name: artifacts
caches:
- path: repo/target
- path: /usr/local/cargo/registry
params:
CI: true
CI: "true"
TARGET: ((target))
GITEA_API_KEY: ((gitea_api_key))
REF: ((ref))
OUTPUT: ((output))
OUTPUT: artifacts
run:
path: .ci/util/run.sh

View file

@ -1,7 +1,9 @@
# yaml-language-server: $schema=https://raw.githubusercontent.com/cappyzawa/concourse-pipeline-jsonschema/master/concourse_jsonschema.json#/definitions/TaskConfig
---
platform: linux
image_resource:
name: dtmt-ci-base-linux
type: registry-image
source:
repository: registry.local:5000/dtmt-ci-base-linux
@ -10,8 +12,12 @@ image_resource:
inputs:
- name: repo
caches:
- path: repo/target
- path: /usr/local/cargo/registry
params:
CI: true
CI: "true"
GITEA_API_KEY: ((gitea_api_key))
REF: ((ref))

31
.ci/tasks/upload.sh Executable file
View file

@ -0,0 +1,31 @@
#!/bin/bash
set -eu
artifacts="$PWD/artifacts"
repo="$PWD/repo"
base_url="${GITEA_URL}/api/packages/${GITEA_USER}/generic"
cd "$repo"
if [ -n "$PR" ]; then
echo "PR: $(echo "$PR" | jq '.number') - $(echo "$PR" | jq '.title')"
ref="pr-$(echo "$PR" | jq '.number')-$(git rev-parse --short HEAD 2>/dev/null || echo 'manual')"
else
ref=$(git describe --tags)
fi
echo "ref: $ref"
# TODO: If this is a tag, check the tag name to determine which
# binary was affected and only upload that.
for f in dtmt dtmt.exe dtmm dtmm.exe; do
if [ -f "$artifacts/$f" ]; then
url="$base_url/$(basename -s .exe $f)/$ref/$f"
curl -i -X 'PUT' \
--user "concourse:$GITEA_API_KEY" \
--upload-file "$artifacts/$f" \
"$url"
fi
done

24
.ci/tasks/upload.yml Normal file
View file

@ -0,0 +1,24 @@
# yaml-language-server: $schema=https://raw.githubusercontent.com/cappyzawa/concourse-pipeline-jsonschema/master/concourse_jsonschema.json#/definitions/TaskConfig
---
platform: linux
image_resource:
name: python-script
type: registry-image
source:
repository: registry.local:5000/python-script
tag: latest
inputs:
- name: repo
- name: ((input))
params:
CI: "true"
GITEA_API_KEY: ((gitea_api_key))
GITEA_URL: ((gitea_url))
GITEA_USER: ((user))
PR: ((pr))
run:
path: repo/.ci/tasks/upload.sh