49 lines
1.8 KiB
YAML
49 lines
1.8 KiB
YAML
|
platform: 'linux/amd64'
|
||
|
branches: ['master']
|
||
|
|
||
|
pipeline:
|
||
|
gen-vc:
|
||
|
# This is what the official CI uses as well
|
||
|
image: 'ubuntu:latest'
|
||
|
secrets:
|
||
|
- deploy_key
|
||
|
commands:
|
||
|
# Install necessary dependencies
|
||
|
- apt-get update -y && apt-get install openssh-client git build-essential -y
|
||
|
# Build the compiler
|
||
|
- make
|
||
|
# Run ssh-agent
|
||
|
- eval $(ssh-agent -s)
|
||
|
# Add ssh key
|
||
|
- echo "$DEPLOY_KEY" | tr -d '\r' | ssh-add -
|
||
|
# Create ssh dir with proper permissions
|
||
|
- mkdir -p ~/.ssh
|
||
|
- chmod 700 ~/.ssh
|
||
|
# Configure git credentials
|
||
|
- git config --global user.email 'vbot@rustybever.be'
|
||
|
- git config --global user.name 'vbot'
|
||
|
# Verify SSH keys
|
||
|
- ssh-keyscan git.rustybever.be > ~/.ssh/known_hosts
|
||
|
|
||
|
# The following is copied over from the official repo's CI
|
||
|
# https://github.com/vlang/v/blob/master/.github/workflows/gen_vc.yml
|
||
|
- export "COMMIT_HASH=$(git rev-parse --short HEAD)"
|
||
|
- export "COMMIT_MSG=$(git log -1 --oneline --pretty='%s' HEAD)"
|
||
|
- rm -rf vc
|
||
|
- git clone --depth=1 'git@git.rustybever.be:vieter/vc.git'
|
||
|
- rm -rf vc/v.c vc/v_win.c
|
||
|
- ./v -o vc/v.c -os cross cmd/v
|
||
|
- ./v -o vc/v_win.c -os windows -cc msvc cmd/v
|
||
|
- sed -i "1s/^/#define V_COMMIT_HASH \"$COMMIT_HASH\"\n/" vc/v.c
|
||
|
- sed -i "1s/^/#define V_COMMIT_HASH \"$COMMIT_HASH\"\n/" vc/v_win.c
|
||
|
# ensure the C files are over 5000 lines long, as a safety measure
|
||
|
- '[ $(wc -l < vc/v.c) -gt 5000 ]'
|
||
|
- '[ $(wc -l < vc/v_win.c) -gt 5000 ]'
|
||
|
- git -C vc add v.c v_win.c
|
||
|
- 'git -C vc commit -m "[v:master] $COMMIT_HASH - $COMMIT_MSG"'
|
||
|
# in case there are recent commits:
|
||
|
- git -C vc pull --rebase origin main
|
||
|
- git -C vc push
|
||
|
when:
|
||
|
event: push
|