Build #49
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: | |
| include: | |
| - arch: amd64 | |
| config: x86_64-gcc-10.5.0-glibc-2.28.config | |
| tuple: x86_64-linux-gnu | |
| pkg: x86_64-linux-gnu-glibc-2.28-gcc-10.5.0 | |
| - 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-gcc-8.5.0 | |
| - arch: arm64 | |
| config: aarch64-gcc-10.5.0-glibc-2.28.config | |
| tuple: aarch64-linux-gnu | |
| pkg: aarch64-linux-gnu-glibc-2.28-gcc-10.5.0 | |
| - arch: arm64 | |
| config: aarch64-gcc-8.5.0-glibc-2.28.config | |
| tuple: aarch64-linux-gnu | |
| pkg: aarch64-linux-gnu-glibc-2.28-gcc-8.5.0 | |
| - arch: armhf | |
| config: armhf-gcc-10.5.0-glibc-2.28.config | |
| tuple: arm-rpi-linux-gnueabihf | |
| pkg: arm-rpi-linux-gnueabihf-glibc-2.28-gcc-10.5.0 | |
| - 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-gcc-8.5.0 | |
| uses: ./.github/workflows/build-toolchain.yml | |
| with: | |
| config: ${{ matrix.config }} | |
| arch: ${{ matrix.arch }} | |
| tuple: ${{ matrix.tuple }} | |
| pkg: ${{ matrix.pkg }} | |
| generate_musl_toolchain: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 180 | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: Build musl toolchain | |
| run: | | |
| set -e | |
| ./build-musl-toolchain.sh aarch64-linux-musl aarch64-linux-musl-gcc-10.3.0 | |
| - name: Publish artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: aarch64-linux-musl-gcc-10.3.0 | |
| path: aarch64-linux-musl-gcc-10.3.0.tar.gz | |
| release_toolchain: | |
| if: github.event.inputs.uploadRelease == 'true' | |
| runs-on: ubuntu-latest | |
| needs: [generate_toolchain, generate_musl_toolchain] | |
| steps: | |
| - uses: actions/download-artifact@v3 | |
| with: | |
| path: artifacts/ | |
| - run: | | |
| mkdir upload | |
| cp artifacts/x86_64-linux-gnu-glibc-2.28-gcc-10.5.0/x86_64-linux-gnu-glibc-2.28-gcc-10.5.0.tar.gz upload/x86_64-linux-gnu-glibc-2.28-gcc-10.5.0.tar.gz | |
| cp artifacts/aarch64-linux-gnu-glibc-2.28-gcc-10.5.0/aarch64-linux-gnu-glibc-2.28-gcc-10.5.0.tar.gz upload/aarch64-linux-gnu-glibc-2.28-gcc-10.5.0.tar.gz | |
| cp artifacts/arm-rpi-linux-gnueabihf-glibc-2.28-gcc-10.5.0/arm-rpi-linux-gnueabihf-glibc-2.28-gcc-10.5.0.tar.gz upload/arm-rpi-linux-gnueabihf-glibc-2.28-gcc-10.5.0.tar.gz | |
| cp artifacts/x86_64-linux-gnu-glibc-2.28-gcc-8.5.0/x86_64-linux-gnu-glibc-2.28-gcc-8.5.0.tar.gz upload/x86_64-linux-gnu-glibc-2.28-gcc-8.5.0.tar.gz | |
| cp artifacts/aarch64-linux-gnu-glibc-2.28-gcc-8.5.0/aarch64-linux-gnu-glibc-2.28-gcc-8.5.0.tar.gz upload/aarch64-linux-gnu-glibc-2.28-gcc-8.5.0.tar.gz | |
| cp artifacts/arm-rpi-linux-gnueabihf-glibc-2.28-gcc-8.5.0/arm-rpi-linux-gnueabihf-glibc-2.28-gcc-8.5.0.tar.gz upload/arm-rpi-linux-gnueabihf-glibc-2.28-gcc-8.5.0.tar.gz | |
| cp artifacts/aarch64-linux-musl-gcc-10.3.0/aarch64-linux-musl-gcc-10.3.0.tar.gz upload/aarch64-linux-musl-gcc-10.3.0.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 || format('v{0}-{1}', github.run_number, github.run_id) }} | |
| files: upload/* | |
| linux: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| arch: [alpine-arm64, alpine-x64] | |
| include: | |
| - arch: alpine-arm64 | |
| 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: vscode/vscode-linux-build-agent:${{ matrix.arch }} | |
| push: ${{ inputs.dockerRelease == true }} |