Improve CI #128

Merged
lucas merged 2 commits from feat/ci into master 2023-11-13 16:18:36 +01:00
6 changed files with 83 additions and 8 deletions

View file

@ -22,7 +22,6 @@ resources:
source: source:
uri: https://git.sclu1034.dev/bitsquid_dt/dtmt uri: https://git.sclu1034.dev/bitsquid_dt/dtmt
jobs: jobs:
- name: set-pipelines - name: set-pipelines
plan: plan:
@ -42,5 +41,3 @@ jobs:
gitea_api_key: ((gitea_api_key)) gitea_api_key: ((gitea_api_key))
instance_vars: instance_vars:
pr: ((.:pr.number)) 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 # The actual CI pipeline that is run per branch
@ -6,7 +7,7 @@ resources:
- name: repo - name: repo
type: git type: git
source: source:
uri: https://git.sclu1034.dev/bitsquid_dt/dtmt uri: http://forgejo:3000/bitsquid_dt/dtmt
branch: ((pr.head.ref)) branch: ((pr.head.ref))
jobs: jobs:
@ -34,6 +35,7 @@ jobs:
target: msvc target: msvc
output: artifact output: artifact
ref: ((.:ref)) ref: ((.:ref))
gitea_url: http://forgejo:3000
gitea_api_key: ((gitea_api_key)) gitea_api_key: ((gitea_api_key))
- name: build-linux - name: build-linux
@ -48,4 +50,13 @@ jobs:
target: linux target: linux
output: artifact output: artifact
ref: ((.:ref)) ref: ((.:ref))
gitea_url: http://forgejo:3000
gitea_api_key: ((gitea_api_key)) 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 platform: linux
image_resource: image_resource:
name: ctmt-bi-base-((target))
type: registry-image type: registry-image
source: source:
repository: registry.local:5000/dtmt-ci-base-((target)) repository: registry.local:5000/dtmt-ci-base-((target))
@ -11,14 +13,18 @@ inputs:
- name: repo - name: repo
outputs: outputs:
- name: ((output)) - name: artifacts
caches:
- path: repo/target
- path: /usr/local/cargo/registry
params: params:
CI: true CI: "true"
TARGET: ((target)) TARGET: ((target))
GITEA_API_KEY: ((gitea_api_key)) GITEA_API_KEY: ((gitea_api_key))
REF: ((ref)) REF: ((ref))
OUTPUT: ((output)) OUTPUT: artifacts
run: run:
path: .ci/util/run.sh 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 platform: linux
image_resource: image_resource:
name: dtmt-ci-base-linux
type: registry-image type: registry-image
source: source:
repository: registry.local:5000/dtmt-ci-base-linux repository: registry.local:5000/dtmt-ci-base-linux
@ -10,8 +12,12 @@ image_resource:
inputs: inputs:
- name: repo - name: repo
caches:
- path: repo/target
- path: /usr/local/cargo/registry
params: params:
CI: true CI: "true"
GITEA_API_KEY: ((gitea_api_key)) GITEA_API_KEY: ((gitea_api_key))
REF: ((ref)) 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