Bump up vineyard version to v0.21.0 #481
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Copyright 2020-2023 Alibaba Group Holding Limited. | |
# | |
# Licensed under the Apache License, Version 2.0 (the "License"); | |
# you may not use this file except in compliance with the License. | |
# You may obtain a copy of the License at | |
# | |
# http://www.apache.org/licenses/LICENSE-2.0 | |
# | |
# Unless required by applicable law or agreed to in writing, software | |
# distributed under the License is distributed on an "AS IS" BASIS, | |
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
# See the License for the specific language governing permissions and | |
# limitations under the License. | |
name: Build Packages for Linux | |
on: | |
push: | |
tags: | |
- 'v*' | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.repository }}-${{ github.event.number || github.head_ref || github.sha }}-${{ github.workflow }} | |
cancel-in-progress: true | |
jobs: | |
build-vineyardd: | |
runs-on: ${{ matrix.os }} | |
if: ${{ github.repository == 'v6d-io/v6d' || github.event_name == 'workflow_dispatch' }} | |
strategy: | |
matrix: | |
os: [ubuntu-20.04] | |
platform: [x86_64, aarch64] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Log in to GitHub Docker Registry | |
uses: docker/login-action@v2 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Set up qemu | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Build vineyardd on Linux | |
env: | |
ALPINE_VERSION: "${{ github.sha }}" | |
run: | | |
make -C docker/ vineyardd ALPINE_VERSION=$ALPINE_VERSION PLATFORM=${{ matrix.platform }} | |
docker run --rm \ | |
-v `pwd`:/target ghcr.io/v6d-io/v6d/vineyardd:alpine-${ALPINE_VERSION}_${{ matrix.platform }} \ | |
sh -c "cp /usr/local/bin/vineyardd /target/" | |
# ldd ./vineyardd | |
- name: Package vineyardd artifact on Linux | |
run: | | |
sha512sum ./vineyardd > vineyardd.${{ matrix.platform }}.${{ github.sha }}.sha512sum | |
echo "Checksum is: " | |
cat ./*.sha512sum | |
tar zcvfh vineyardd.${{ runner.os }}-${{ matrix.platform }}.${{ github.sha }}.tar.gz ./vineyardd vineyardd.${{ matrix.platform }}.${{ github.sha }}.sha512sum | |
- name: Upload docker image as nightly | |
if: ${{ github.event_name == 'workflow_dispatch' && github.repository == 'v6d-io/v6d' }} | |
run: | | |
docker push ghcr.io/v6d-io/v6d/vineyardd:alpine-${{ github.sha }}_${{ matrix.platform }} | |
- name: Extract tag name | |
id: tag | |
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') && github.repository == 'v6d-io/v6d' }} | |
run: echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT | |
- name: Tag and upload docker for releases | |
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') && github.repository == 'v6d-io/v6d' }} | |
run: | | |
docker tag ghcr.io/v6d-io/v6d/vineyardd:alpine-${{ github.sha }}_${{ matrix.platform }} \ | |
ghcr.io/v6d-io/v6d/vineyardd:alpine-${{ steps.tag.outputs.TAG }}_${{ matrix.platform }} | |
docker tag ghcr.io/v6d-io/v6d/vineyardd:alpine-${{ github.sha }}_${{ matrix.platform }} \ | |
ghcr.io/v6d-io/v6d/vineyardd:${{ steps.tag.outputs.TAG }}_${{ matrix.platform }} | |
docker tag ghcr.io/v6d-io/v6d/vineyardd:alpine-${{ github.sha }}_${{ matrix.platform }} \ | |
ghcr.io/v6d-io/v6d/vineyardd:alpine-latest_${{ matrix.platform }} | |
docker tag ghcr.io/v6d-io/v6d/vineyardd:alpine-${{ github.sha }}_${{ matrix.platform }} \ | |
ghcr.io/v6d-io/v6d/vineyardd:latest_${{ matrix.platform }} | |
docker push ghcr.io/v6d-io/v6d/vineyardd:alpine-${{ steps.tag.outputs.TAG }}_${{ matrix.platform }} | |
docker push ghcr.io/v6d-io/v6d/vineyardd:${{ steps.tag.outputs.TAG }}_${{ matrix.platform }} | |
docker push ghcr.io/v6d-io/v6d/vineyardd:alpine-latest_${{ matrix.platform }} | |
docker push ghcr.io/v6d-io/v6d/vineyardd:latest_${{ matrix.platform }} | |
- name: Upload CI artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: vineyardd.${{ runner.os }}-${{ matrix.platform }}.${{ github.sha }}.tar.gz | |
path: vineyardd.${{ runner.os }}-${{ matrix.platform }}.${{ github.sha }}.tar.gz | |
build-vineyardd-manifest: | |
needs: [build-vineyardd] | |
runs-on: ${{ matrix.os }} | |
if: ${{ github.repository == 'v6d-io/v6d' || github.event_name == 'workflow_dispatch' }} | |
strategy: | |
matrix: | |
os: [ubuntu-20.04] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: false | |
- name: Log in to GitHub Docker Registry | |
uses: docker/login-action@v2 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Generate multi-arch manifest | |
if: ${{ github.event_name == 'workflow_dispatch' && github.repository == 'v6d-io/v6d' }} | |
run: | | |
make -C docker/ vineyardd-manifest ALPINE_VERSION=${{ github.sha }} | |
docker manifest push ghcr.io/v6d-io/v6d/vineyardd:alpine-${{ github.sha }} | |
- name: Extract tag name | |
id: tag | |
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') && github.repository == 'v6d-io/v6d' }} | |
run: echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT | |
- name: Tag and upload manifest for releases | |
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') && github.repository == 'v6d-io/v6d' }} | |
run: | | |
make -C docker/ vineyardd-manifest ALPINE_VERSION=${{ steps.tag.outputs.TAG }} | |
docker manifest push ghcr.io/v6d-io/v6d/vineyardd:alpine-${{ steps.tag.outputs.TAG }} | |
make -C docker/ vineyardd-manifest ALPINE_MANIFEST_TAG=latest | |
docker manifest push ghcr.io/v6d-io/v6d/vineyardd:latest | |
build-vineyardctl: | |
runs-on: ${{ matrix.os }} | |
if: ${{ github.repository == 'v6d-io/v6d' || github.event_name == 'workflow_dispatch' }} | |
strategy: | |
matrix: | |
os: [ubuntu-20.04] | |
platform: [x86_64, aarch64] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: false | |
- uses: actions/setup-go@v3 | |
with: | |
go-version: 1.19 | |
- name: Extract tag name | |
id: tag | |
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') && github.repository == 'v6d-io/v6d' }} | |
run: echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT | |
- name: Build vineyardctl | |
run: | | |
export arch="${{ matrix.platform }}" | |
export arch="${arch/x86_64/amd64}" | |
export arch="${arch/aarch64/arm64}" | |
echo "arch = $arch" | |
env CGO_ENABLED=0 GOARCH=$arch go build -a -o vineyardctl k8s/cmd/main.go | |
sudo apt-get update -y | |
sudo apt-get install -y binutils-x86-64-linux-gnu binutils-aarch64-linux-gnu upx-ucl|| true | |
x86_64-linux-gnu-strip ./vineyardctl || true | |
aarch64-linux-gnu-strip ./vineyardctl || true | |
upx -9 ./vineyardctl || true | |
- name: Upload vineyardctl to tagged release | |
uses: svenstaro/upload-release-action@v2 | |
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') && github.repository == 'v6d-io/v6d' }} | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: ./vineyardctl | |
asset_name: vineyardctl-${{ steps.tag.outputs.TAG }}-linux-${{ matrix.platform == 'x86_64' && 'amd64' || 'arm64' }} | |
file_glob: false | |
tag: ${{ steps.tag.outputs.TAG }} | |
prerelease: false | |
overwrite: true | |
body: "vineyard ${{ steps.tag.outputs.TAG }}" | |
- name: Package vineyardctl artifact on Linux | |
run: | | |
sha512sum vineyardctl > vineyardctl.${{ matrix.platform }}.${{ github.sha }}.sha512sum | |
echo "Checksum is: " | |
cat ./*.sha512sum | |
tar zcvfh vineyardctl.${{ runner.os }}-${{ matrix.platform }}.${{ github.sha }}.tar.gz ./vineyardctl vineyardctl.${{ matrix.platform }}.${{ github.sha }}.sha512sum | |
- name: Upload CI artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: vineyardctl.${{ runner.os }}-${{ matrix.platform }}.${{ github.sha }}.tar.gz | |
path: vineyardctl.${{ runner.os }}-${{ matrix.platform }}.${{ github.sha }}.tar.gz | |
build-bdist-wheels: | |
needs: [build-vineyardd, build-vineyardctl] | |
runs-on: ${{ matrix.os }} | |
if: ${{ github.repository == 'v6d-io/v6d' || github.event_name == 'workflow_dispatch' }} | |
strategy: | |
matrix: | |
os: [ubuntu-20.04] | |
platform: [x86_64, aarch64] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: false | |
- name: Download vineyardd artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
name: vineyardd.${{ runner.os }}-${{ matrix.platform }}.${{ github.sha }}.tar.gz | |
- name: Download vineyardctl artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
name: vineyardctl.${{ runner.os }}-${{ matrix.platform }}.${{ github.sha }}.tar.gz | |
- name: Prepare binary | |
run: | | |
tar zxvf vineyardd.${{ runner.os }}-${{ matrix.platform }}.${{ github.sha }}.tar.gz | |
tar zxvf vineyardctl.${{ runner.os }}-${{ matrix.platform }}.${{ github.sha }}.tar.gz | |
mv vineyardd python/vineyard/bdist/vineyardd | |
mv vineyardctl python/vineyard/bdist/vineyardctl | |
- name: Build wheel package on Linux | |
run: | | |
python3 setup_bdist.py bdist_wheel --plat=manylinux2014_${{ matrix.platform }} | |
mv dist fixed_wheels | |
- name: Extract tag name | |
id: tag | |
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') }} | |
run: echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT | |
- name: Upload wheels to tagged release | |
uses: svenstaro/upload-release-action@v2 | |
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') && github.repository == 'v6d-io/v6d' }} | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: fixed_wheels/*.whl | |
file_glob: true | |
tag: ${{ steps.tag.outputs.TAG }} | |
prerelease: false | |
overwrite: true | |
body: "vineyard ${{ steps.tag.outputs.TAG }}" | |
- uses: actions/upload-artifact@v3 | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
with: | |
name: vineyard-bdist-linux-${{ matrix.platform }}-wheels | |
path: fixed_wheels/*.whl | |
build-wheels: | |
runs-on: ${{ matrix.os }} | |
if: ${{ github.repository == 'v6d-io/v6d' || github.event_name == 'workflow_dispatch' }} | |
strategy: | |
matrix: | |
os: [ubuntu-20.04] | |
platform: [x86_64, aarch64] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Generate Summary for Submodules | |
run: | | |
git submodule > git-modules.txt | |
cat git-modules.txt | |
- name: Log in to GitHub Docker Registry | |
uses: docker/login-action@v2 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Set up qemu | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Cache for cccahe | |
uses: actions/cache@v3 | |
with: | |
path: ~/.ccache | |
key: ${{ matrix.os }}-${{ matrix.python }}-ccache-${{ hashFiles('**/git-modules.txt') }} | |
restore-keys: | | |
${{ matrix.os }}-${{ matrix.python }}-ccache- | |
- name: Build wheel package on Linux | |
env: | |
WHEEL_VERSION: "${{ github.sha }}" | |
run: | | |
mkdir -p fixed_wheels | |
for py in cp36-cp36m cp37-cp37m cp38-cp38 cp39-cp39 cp310-cp310 cp311-cp311 cp312-cp312; do | |
make -C docker/ python-wheel WHEEL_PYTHON=$py WHEEL_VERSION=$WHEEL_VERSION PLATFORM=${{ matrix.platform }} | |
docker run --rm \ | |
-v `pwd`/fixed_wheels:/target \ | |
ghcr.io/v6d-io/v6d/vineyard-wheel:${WHEEL_VERSION}_${py}_${{ matrix.platform }} \ | |
sh -c "cp -r /work/fixed_wheels/* /target/" | |
done | |
ls -la ./fixed_wheels/ | |
- name: Extract tag name | |
id: tag | |
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') }} | |
run: echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT | |
- name: Upload wheels to tagged release | |
uses: svenstaro/upload-release-action@v2 | |
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') && github.repository == 'v6d-io/v6d' }} | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: fixed_wheels/*.whl | |
file_glob: true | |
tag: ${{ steps.tag.outputs.TAG }} | |
prerelease: false | |
overwrite: true | |
body: "vineyard ${{ steps.tag.outputs.TAG }}" | |
- uses: actions/upload-artifact@v3 | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
with: | |
name: vineyard-linux-${{ matrix.platform }}-wheels | |
path: fixed_wheels/*.whl |