# This is the branch that contains my patches, it's basically the master platform: linux/amd64 branch: master pipeline: build: image: 'ubuntu:latest' commands: - apt-get update -y && apt-get install build-essential git -y - make when: event: push gen-vc: # This is what the official CI uses as well image: 'ubuntu:latest' secrets: - deploy_key commands: # Install ssh-agent if not present - 'command -v ssh-agent >/dev/null || ( apt-get update -y && apt-get install openssh-client -y )' # 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' # 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 https://git.rustybever.be/Chewing_Bever/vc - 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 master - git -C vc push when: event: push publish: image: woodpeckerci/plugin-docker-buildx secrets: [ docker_username, docker_password ] settings: repo: chewingbever/vlang tag: latest dockerfile: Dockerfile.builder platforms: [ linux/arm/v7, linux/arm64/v8, linux/amd64 ] # The build can run every time, because we should only push when there's # actual changes when: event: push