OpenSSH #3
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
name: OpenSSH | |
on: | |
workflow_dispatch | |
jobs: | |
build-x86: | |
name: Build OpenSSH x86 | |
runs-on: ubuntu-latest | |
container: muslcc/x86_64:i686-linux-musl | |
outputs: | |
version: ${{ steps.build_openssh.outputs.PACKAGED_VERSION }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Install dependencies | |
run: sudo apk update && sudo apk add bash && sudo bash build/install_deps_alpine.sh | |
- name: Build OpenSSH | |
id: build_openssh | |
run: $GITHUB_WORKSPACE/build/targets/build_openssh.sh x86 | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: ${{ steps.build_openssh.outputs.PACKAGED_NAME }} | |
path: ${{ steps.build_openssh.outputs.PACKAGED_NAME_PATH }} | |
build-x86_64: | |
name: Build OpenSSH x86_64 | |
runs-on: ubuntu-latest | |
container: muslcc/x86_64:x86_64-linux-musl | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Install dependencies | |
run: sudo apk update && sudo apk add bash && sudo bash build/install_deps_alpine.sh | |
- name: Build OpenSSH | |
id: build_openssh | |
run: $GITHUB_WORKSPACE/build/targets/build_openssh.sh x86_64 | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: ${{ steps.build_openssh.outputs.PACKAGED_NAME }} | |
path: ${{ steps.build_openssh.outputs.PACKAGED_NAME_PATH }} | |
build-armhf: | |
name: Build OpenSSH ARMHF | |
runs-on: ubuntu-latest | |
container: muslcc/x86_64:arm-linux-musleabihf | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Install dependencies | |
run: sudo apk update && sudo apk add bash && sudo bash build/install_deps_alpine.sh | |
- name: Build OpenSSH | |
id: build_openssh | |
run: $GITHUB_WORKSPACE/build/targets/build_openssh.sh armhf | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: ${{ steps.build_openssh.outputs.PACKAGED_NAME }} | |
path: ${{ steps.build_openssh.outputs.PACKAGED_NAME_PATH }} | |
build-aarch64: | |
name: Build OpenSSH AARCH64 | |
runs-on: ubuntu-latest | |
container: muslcc/x86_64:aarch64-linux-musl | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Install dependencies | |
run: sudo apk update && sudo apk add bash && sudo bash build/install_deps_alpine.sh | |
- name: Build OpenSSH | |
id: build_openssh | |
run: $GITHUB_WORKSPACE/build/targets/build_openssh.sh aarch64 | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: ${{ steps.build_openssh.outputs.PACKAGED_NAME }} | |
path: ${{ steps.build_openssh.outputs.PACKAGED_NAME_PATH }} | |
create-release: | |
name: Create OpenSSH Release | |
runs-on: ubuntu-latest | |
needs: [build-x86, build-x86_64, build-armhf, build-aarch64] | |
permissions: | |
contents: write | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Prepare Environment | |
run: mkdir /tmp/releases | |
- name: Download Artifacts | |
uses: actions/download-artifact@v2 | |
with: | |
path: /tmp/releases | |
- name: List Artifacts | |
run: ls -laR /tmp/releases | |
- name: Fetch tags | |
run: git fetch --tags --prune --quiet | |
- name: Tag Release | |
id: tag_release | |
run: | | |
set +e | |
if git rev-list "openssh-v${{ needs.build-x86.outputs.version }}" >/dev/null;then | |
echo "Tag for openssh-v${{ needs.build-x86.outputs.version }} already exists. Skipping release creation." | |
echo "NEW_RELEASE=false" >> $GITHUB_OUTPUT | |
else | |
git tag "openssh-v${{ needs.build-x86.outputs.version }}" | |
git push origin "openssh-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: openssh-v${{ needs.build-x86.outputs.version }} | |
tag: openssh-v${{ needs.build-x86.outputs.version }} | |
artifacts: "/tmp/releases/*/*" | |
token: ${{ secrets.GITHUB_TOKEN }} |