Build #34
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 | |
| 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 }} |