name: socat on: workflow_dispatch jobs: build-x86: name: Build socat x86 runs-on: docker container: muslcc/x86_64:i686-linux-musl outputs: version: ${{ steps.build_socat.outputs.PACKAGED_VERSION }} steps: - name: Install dependencies run: sudo apk update && sudo apk add bash nodejs && sudo bash build/install_deps_alpine.sh - name: Checkout uses: actions/checkout@v4 - name: Install testing dependencies run: apk add --no-cache -X http://dl-cdn.alpinelinux.org/alpine/edge/testing yodl - name: Build socat id: build_socat run: $GITHUB_WORKSPACE/build/targets/build_socat.sh x86 - name: Upload artifacts uses: https://code.forgejo.org/forgejo/upload-artifact@v4 with: name: ${{ steps.build_socat.outputs.PACKAGED_NAME }} path: ${{ steps.build_socat.outputs.PACKAGED_NAME_PATH }} build-x86_64: name: Build socat x86_64 runs-on: docker container: muslcc/x86_64:x86_64-linux-musl steps: - name: Checkout uses: actions/checkout@v4 - name: Install dependencies run: sudo apk update && sudo apk add bash && sudo bash build/install_deps_alpine.sh - name: Install testing dependencies run: apk add --no-cache -X http://dl-cdn.alpinelinux.org/alpine/edge/testing yodl - name: Build socat id: build_socat run: $GITHUB_WORKSPACE/build/targets/build_socat.sh x86_64 - name: Upload artifacts uses: https://code.forgejo.org/forgejo/upload-artifact@v4 with: name: ${{ steps.build_socat.outputs.PACKAGED_NAME }} path: ${{ steps.build_socat.outputs.PACKAGED_NAME_PATH }} build-armhf: name: Build socat ARMHF runs-on: docker container: muslcc/x86_64:arm-linux-musleabihf steps: - name: Checkout uses: actions/checkout@v4 - name: Install dependencies run: sudo apk update && sudo apk add bash && sudo bash build/install_deps_alpine.sh - name: Install testing dependencies run: apk add --no-cache -X http://dl-cdn.alpinelinux.org/alpine/edge/testing yodl - name: Install build compiler run: /bin/sh -c "apk update && apk upgrade && apk add --no-cache curl rsync sudo util-linux && cd / && curl -so ${ARCH}-cross.tgz ${HOST}/${ARCH}-cross.tgz && tar -xf ${ARCH}-cross.tgz && rm ${ARCH}-cross.tgz && cd ${ARCH}-cross" env: ARCH: x86_64-linux-musl HOST: http://musl.cc/ TEMP: /tmp USER: 0 - name: Build socat id: build_socat run: $GITHUB_WORKSPACE/build/targets/build_socat.sh armhf - name: Upload artifacts uses: https://code.forgejo.org/forgejo/upload-artifact@v4 with: name: ${{ steps.build_socat.outputs.PACKAGED_NAME }} path: ${{ steps.build_socat.outputs.PACKAGED_NAME_PATH }} build-aarch64: name: Build socat AARCH64 runs-on: docker container: muslcc/x86_64:aarch64-linux-musl steps: - name: Checkout uses: actions/checkout@v4 - name: Install dependencies run: sudo apk update && sudo apk add bash && sudo bash build/install_deps_alpine.sh - name: Install testing dependencies run: apk add --no-cache -X http://dl-cdn.alpinelinux.org/alpine/edge/testing yodl - name: Install build compiler run: /bin/sh -c "apk update && apk upgrade && apk add --no-cache curl rsync sudo util-linux && cd / && curl -so ${ARCH}-cross.tgz ${HOST}/${ARCH}-cross.tgz && tar -xf ${ARCH}-cross.tgz && rm ${ARCH}-cross.tgz && cd ${ARCH}-cross" env: ARCH: x86_64-linux-musl HOST: http://musl.cc/ TEMP: /tmp USER: 0 - name: Build socat id: build_socat run: $GITHUB_WORKSPACE/build/targets/build_socat.sh aarch64 - name: Upload artifacts uses: https://code.forgejo.org/forgejo/upload-artifact@v4 with: name: ${{ steps.build_socat.outputs.PACKAGED_NAME }} path: ${{ steps.build_socat.outputs.PACKAGED_NAME_PATH }} build-ppc32: name: Build socat powerpc32 runs-on: docker container: muslcc/x86_64:powerpc-linux-musl steps: - name: Checkout uses: actions/checkout@v4 - name: Install dependencies run: sudo apk update && sudo apk add bash && sudo bash build/install_deps_alpine.sh - name: Install testing dependencies run: apk add --no-cache -X http://dl-cdn.alpinelinux.org/alpine/edge/testing yodl - name: Install build compiler run: /bin/sh -c "apk update && apk upgrade && apk add --no-cache curl rsync sudo util-linux && cd / && curl -so ${ARCH}-cross.tgz ${HOST}/${ARCH}-cross.tgz && tar -xf ${ARCH}-cross.tgz && rm ${ARCH}-cross.tgz && cd ${ARCH}-cross" env: ARCH: x86_64-linux-musl HOST: http://musl.cc/ TEMP: /tmp USER: 0 - name: Build socat id: build_socat run: $GITHUB_WORKSPACE/build/targets/build_socat.sh ppc32 - name: Upload artifacts uses: https://code.forgejo.org/forgejo/upload-artifact@v4 with: name: ${{ steps.build_socat.outputs.PACKAGED_NAME }} path: ${{ steps.build_socat.outputs.PACKAGED_NAME_PATH }} build-ppc64: name: Build socat powerpc64 runs-on: docker container: muslcc/x86_64:powerpc64-linux-musl steps: - name: Checkout uses: actions/checkout@v4 - name: Install dependencies run: sudo apk update && sudo apk add bash && sudo bash build/install_deps_alpine.sh - name: Install testing dependencies run: apk add --no-cache -X http://dl-cdn.alpinelinux.org/alpine/edge/testing yodl - name: Install build compiler run: /bin/sh -c "apk update && apk upgrade && apk add --no-cache curl rsync sudo util-linux && cd / && curl -so ${ARCH}-cross.tgz ${HOST}/${ARCH}-cross.tgz && tar -xf ${ARCH}-cross.tgz && rm ${ARCH}-cross.tgz && cd ${ARCH}-cross" env: ARCH: x86_64-linux-musl HOST: http://musl.cc/ TEMP: /tmp USER: 0 - name: Build socat id: build_socat run: $GITHUB_WORKSPACE/build/targets/build_socat.sh ppc64 - name: Upload artifacts uses: https://code.forgejo.org/forgejo/upload-artifact@v4 with: name: ${{ steps.build_socat.outputs.PACKAGED_NAME }} path: ${{ steps.build_socat.outputs.PACKAGED_NAME_PATH }} create-release: name: Create socat Release runs-on: docker needs: [build-x86, build-x86_64, build-armhf, build-aarch64, build-ppc32, build-ppc64] steps: - name: Checkout uses: actions/checkout@v4 - name: Prepare Environment run: mkdir /tmp/releases - name: Download Artifacts uses: https://code.forgejo.org/forgejo/download-artifact@v4 with: path: /tmp/releases - name: List Artifacts run: ls -laR /tmp/releases - name: Tag Release id: tag_release run: | set +e if git rev-list "socat-v${{ needs.build-x86.outputs.version }}".. >/dev/null;then echo "Tag for socat-v${{ needs.build-x86.outputs.version }} already exists. Skipping release creation." echo "NEW_RELEASE=false" >> $GITHUB_OUTPUT else git tag "socat-v${{ needs.build-x86.outputs.version }}" git push origin "socat-v${{ needs.build-x86.outputs.version }}" echo "NEW_RELEASE=true" >> $GITHUB_OUTPUT fi - name: Create Release uses: ncipollo/release-action@v1 if: ${{ steps.tag_release.outputs.NEW_RELEASE == 'true' }} with: name: socat-v${{ needs.build-x86.outputs.version }} tag: socat-v${{ needs.build-x86.outputs.version }} artifacts: "/tmp/releases/*/*" token: ${{ secrets.GITHUB_TOKEN }}