Build #37
This file contains hidden or 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
name: Build | |
on: | |
workflow_dispatch: | |
inputs: | |
uploadRelease: | |
description: "Create Github Release" | |
type: boolean | |
tag: | |
description: "Github release tag" | |
dockerRelease: | |
description: "Create Dockerhub Releasee" | |
type: boolean | |
jobs: | |
generate_toolchain: | |
strategy: | |
fail-fast: true | |
matrix: | |
arch: [focal-x64, bionic-arm64, bionic-armhf, centos7-devtoolset8-x64, centos7-devtoolset8-arm64] | |
include: | |
- arch: amd64 | |
config: x86_64-gcc-8.5.0-glibc-2.28.config | |
tuple: x86_64-linux-gnu | |
pkg: x86_64-linux-gnu-glibc-2.28 | |
- arch: amd64 | |
config: x86_64-gcc-7.5.0-glibc-2.17.config | |
tuple: x86_64-linux-gnu | |
pkg: x86_64-linux-gnu-glibc-2.17 | |
- arch: arm64 | |
config: aarch64-gcc-8.5.0-glibc-2.28.config | |
tuple: aarch64-linux-gnu | |
pkg: aarch64-linux-gnu-glibc-2.28 | |
- arch: arm64 | |
config: aarch64-gcc-7.5.0-glibc-2.17.config | |
tuple: aarch64-linux-gnu | |
pkg: aarch64-linux-gnu-glibc-2.17 | |
- arch: armhf | |
config: armhf-gcc-8.5.0-glibc-2.28.config | |
tuple: arm-rpi-linux-gnueabihf | |
pkg: arm-rpi-linux-gnueabihf-glibc-2.28 | |
- arch: armhf | |
config: armhf-gcc-7.5.0-glibc-2.17.config | |
tuple: arm-rpi-linux-gnueabihf | |
pkg: arm-rpi-linux-gnueabihf-glibc-2.17 | |
- arch: centos7-devtoolset8-x64 | |
config: x86_64-gcc-7.5.0-glibc-2.17.config | |
tuple: x86_64-linux-gnu | |
pkg: x86_64-linux-gnu-glibc-2.17-centos7 | |
- arch: centos7-devtoolset8-arm64 | |
config: aarch64-gcc-7.5.0-glibc-2.17.config | |
tuple: aarch64-linux-gnu | |
pkg: aarch64-linux-gnu-glibc-2.17-centos7 | |
uses: ./.github/workflows/build-toolchain.yml | |
with: | |
config: ${{ matrix.config }} | |
arch: ${{ matrix.arch }} | |
tuple: ${{ matrix.tuple }} | |
pkg: ${{ matrix.pkg }} | |
release_toolchain: | |
if: github.event.inputs.uploadRelease == 'true' | |
runs-on: ubuntu-latest | |
needs: generate_toolchain | |
steps: | |
- uses: actions/download-artifact@v3 | |
with: | |
path: artifacts/ | |
- run: | | |
mkdir upload | |
cp artifacts/x86_64-linux-gnu-glibc-2.28/x86_64-linux-gnu-glibc-2.28.tar.gz upload/x86_64-linux-gnu-glibc-2.28.tar.gz | |
cp artifacts/aarch64-linux-gnu-glibc-2.28/aarch64-linux-gnu-glibc-2.28.tar.gz upload/aarch64-linux-gnu-glibc-2.28.tar.gz | |
cp artifacts/arm-rpi-linux-gnueabihf-glibc-2.28/arm-rpi-linux-gnueabihf-glibc-2.28.tar.gz upload/arm-rpi-linux-gnueabihf-glibc-2.28.tar.gz | |
cp artifacts/x86_64-linux-gnu-glibc-2.17/x86_64-linux-gnu-glibc-2.17.tar.gz upload/x86_64-linux-gnu-glibc-2.17.tar.gz | |
cp artifacts/aarch64-linux-gnu-glibc-2.17/aarch64-linux-gnu-glibc-2.17.tar.gz upload/aarch64-linux-gnu-glibc-2.17.tar.gz | |
cp artifacts/arm-rpi-linux-gnueabihf-glibc-2.17/arm-rpi-linux-gnueabihf-glibc-2.17.tar.gz upload/arm-rpi-linux-gnueabihf-glibc-2.17.tar.gz | |
cd upload | |
shasum -a 256 *.tar.gz > SHASUMS256.txt | |
- name: Create GitHub Release | |
uses: softprops/action-gh-release@v1 | |
with: | |
repository: ${{ github.repository_owner }}/vscode-linux-build-agent | |
tag_name: ${{ inputs.tag }} | |
files: upload/* | |
linux: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
arch: [bionic-arm32v7, centos7-devtoolset8-x64, centos7-devtoolset8-arm64] | |
include: | |
- arch: centos7-devtoolset8-arm64 | |
qemu: true | |
- arch: bionic-arm32v7 | |
qemu: true | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
if: matrix.qemu == true | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
with: | |
install: true | |
- name: Login to DockerHub | |
uses: docker/login-action@v2 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Build and push | |
uses: docker/build-push-action@v4 | |
with: | |
context: ${{ matrix.arch }} | |
file: ${{ matrix.arch }}/Dockerfile | |
tags: gitpod/openvscode-server-linux-build-agent:${{ matrix.arch }} | |
push: ${{ inputs.dockerRelease == true }} |