.github/workflows/release.yml
# AmiSSL Release build
name: Release Build
on:
workflow_dispatch:
jobs:
release_draft:
name: Release draft
runs-on: ubuntu-20.04
outputs:
upload_url: ${{ steps.release_drafter.outputs.upload_url }}
version: ${{ steps.env.outputs.version }}
date: ${{ steps.env.outputs.date }}
steps:
- name: Checkout Code
uses: actions/checkout@v2.3.4
with:
fetch-depth: 0
- name: Setup Environment
id: env
shell: bash
run: |
BUILD_DATE=$(date +%Y%m%d)
VERSION=$(grep ^VERSION= Makefile | awk -F= '{ print $2 }')
AMISSLMASTERREVISION=$(grep ^AMISSLMASTERREVISION= Makefile | awk -F= '{ print $2 }')
echo "::set-output name=version::${VERSION}.${AMISSLMASTERREVISION}"
echo "::set-output name=date::${BUILD_DATE}"
- name: Get previous tag
id: previoustag
uses: WyriHaximus/github-action-get-previous-tag@v1.1
- name: Generate changelog
id: changelog
uses: metcalfc/changelog-generator@v1.0.0
with:
myToken: ${{ secrets.GITHUB_TOKEN }}
- name: Generate release notes
shell: bash
run: |
export CHANGELOG="$(tac <<'EOF'
${{ steps.changelog.outputs.changelog }}
EOF
)"
export VERSION=${{ steps.env.outputs.version }}
export PREVIOUS_TAG=${{ steps.previoustag.outputs.tag }}
envsubst <.github/release-template.md >/tmp/release-template.md
- name: Create release draft
id: release_drafter
uses: ncipollo/release-action@v1.8.6
with:
tag: ${{ steps.env.outputs.version }}
name: 'AmiSSL ${{ steps.env.outputs.version }}'
bodyFile: /tmp/release-template.md
draft: true
prerelease: false
allowUpdates: true
token: ${{ secrets.GITHUB_TOKEN }}
build:
name: Release build
runs-on: ubuntu-20.04
timeout-minutes: 480
needs: release_draft
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v2.3.4
- name: setup dependencies
run: |
sudo dpkg --add-architecture i386
sudo apt-get update -y -qq || true
sudo apt-get -qq install libc6:i386
sudo ln -s /usr/lib/x86_64-linux-gnu/libmpfr.so.6 /usr/lib/x86_64-linux-gnu/libmpfr.so.4
- name: setup env
run : |
echo "GITHUB_SHA7=$(echo ${GITHUB_SHA::7})" >>$GITHUB_ENV
echo "BUILD_DATE=$(date +'%Y%m%d')" >>$GITHUB_ENV
- name: install adtools build env
run: |
DOWNLOAD_PATH=https://github.com/adtools/adtools/releases/download/20170213
DOWNLOAD_PATH_UTILS=https://github.com/adtools/adtools/releases/download/20220416
curl -L ${DOWNLOAD_PATH_UTILS}/adtools-utils.tar.bz2 | sudo tar xj -C /
curl -L ${DOWNLOAD_PATH}/adtools-m68k-amigaos.tar.bz2 | sudo tar xj -C /
curl -L ${DOWNLOAD_PATH}/adtools-ppc-amigaos-legacy.tar.bz2 | sudo tar xj -C /
curl -L ${DOWNLOAD_PATH}/adtools-ppc-amigaos.tar.bz2 | sudo tar xj -C /
#curl -L ${DOWNLOAD_PATH}/adtools-ppc-morphos.tar.bz2 | sudo tar xj -C /
#curl -L ${DOWNLOAD_PATH}/adtools-ppc-aros.tar.bz2 | sudo tar xj -C /
#curl -L ${DOWNLOAD_PATH}/adtools-i386-aros.tar.bz2 | sudo tar xj -C /
#curl -L ${DOWNLOAD_PATH}/adtools-x86_64-aros.tar.bz2 | sudo tar xj -C /
#- name: remote debug tmate session
# uses: mxschmitt/action-tmate@v1
# major build step
- name: build AmiSSL release
timeout-minutes: 480
run: |
sudo rm /usr/local/amiga/bin/ppc-amigaos-strip
export PATH=/usr/local/amiga/bin:/opt/m68k-amigaos/bin:/opt/ppc-amigaos/bin:/opt/ppc-morphos/bin:${PATH}
make -j1 release
- name: upload release archive as workflow artifact
uses: actions/upload-artifact@v2
with:
path: |
AmiSSL-${{ needs.release_draft.outputs.version }}.lha
AmiSSL-${{ needs.release_draft.outputs.version }}.lha.sha256
AmiSSL-${{ needs.release_draft.outputs.version }}.readme
name: AmiSSL-${{ needs.release_draft.outputs.version }}-${{ env.GITHUB_SHA7 }}
continue-on-error: true
#######################
# release uploads
- name: Upload release archive
uses: actions/upload-release-asset@v1.0.2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.release_draft.outputs.upload_url }}
asset_path: AmiSSL-${{ needs.release_draft.outputs.version }}.lha
asset_name: AmiSSL-${{ needs.release_draft.outputs.version }}.lha
asset_content_type: application/x-lha
- name: Upload release archive [sha256]
uses: actions/upload-release-asset@v1.0.2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.release_draft.outputs.upload_url }}
asset_path: AmiSSL-${{ needs.release_draft.outputs.version }}.lha.sha256
asset_name: AmiSSL-${{ needs.release_draft.outputs.version }}.lha.sha256
asset_content_type: text/plain
- name: Upload release archive [readme]
uses: actions/upload-release-asset@v1.0.2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.release_draft.outputs.upload_url }}
asset_path: AmiSSL-${{ needs.release_draft.outputs.version }}.readme
asset_name: AmiSSL-${{ needs.release_draft.outputs.version }}.readme
asset_content_type: text/plain