Skip to content

Commit

Permalink
Simplify release workflow (#2541)
Browse files Browse the repository at this point in the history
* simplify release workflow

Signed-off-by: Jorge Prendes <jorge.prendes@gmail.com>

* Update doc-updating-script to reflect new tar structure

Signed-off-by: Jorge Prendes <jorge.prendes@gmail.com>

---------

Signed-off-by: Jorge Prendes <jorge.prendes@gmail.com>
  • Loading branch information
jprendes committed Dec 16, 2023
1 parent 65dc45b commit 6bd1281
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 59 deletions.
85 changes: 34 additions & 51 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,21 @@ on:
tags: ["v[0-9]+.[0-9]+.[0-9]+*"]

jobs:
parse:
runs-on: ubuntu-latest
name: Parse ref
outputs:
version: ${{ steps.parse.outputs.version }}
steps:
- id: parse
name: Parse ref
run: echo "version=${GITHUB_REF##refs/tags/v}" >> ${GITHUB_OUTPUT}

build:
name: Build
runs-on: ubuntu-20.04
needs:
- parse
strategy:
matrix:
arch: [ "x86_64", "aarch64" ]
Expand Down Expand Up @@ -37,74 +49,45 @@ jobs:
run: just test-basic test-oci
- name: Create output directory
run: mkdir output
- name: Copy files to output
run: |
cp youki output/
cp README.md output/README.md
cp LICENSE output/LICENSE
- name: Create artifact
run: tar -zcvf youki-${{ needs.parse.outputs.version }}-${{ matrix.arch }}.tar.gz youki README.md LICENSE
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: output-${{ matrix.arch }}
path: output/*
name: youki-${{ matrix.arch }}
path: youki-${{ needs.parse.outputs.version }}-${{ matrix.arch }}.tar.gz

release:
name: Create Draft Release
runs-on: ubuntu-20.04
permissions:
contents: write
needs:
- parse
- build
steps:
- uses: actions/checkout@v3

- name: Determine Release Info
id: info
env:
GITHUB_REF: ${{ github.ref }}
run: |
VERSION=${GITHUB_REF##*v}
MAJOR=${VERSION%%.*}
MINOR=${VERSION%.*}
MINOR=${MINOR#*.}
PATCH=${VERSION##*.}
echo "VERSION=${VERSION}" >> $GITHUB_ENV
echo "OUTPUTDIR=youki_${MAJOR}_${MINOR}_${PATCH}_linux" >> $GITHUB_ENV
echo "INNERDIR=youki-${VERSION}" >> $GITHUB_ENV
- name: Create Output Directory
run: |
mkdir -p ${{ env.OUTPUTDIR }}-x86_64/${{ env.INNERDIR }}
mkdir -p ${{ env.OUTPUTDIR }}-aarch64/${{ env.INNERDIR }}
- name: Download Linux Artifacts for x86_64
uses: actions/download-artifact@v3
with:
name: output-x86_64
path: ${{ env.OUTPUTDIR }}-x86_64/${{ env.INNERDIR }}
- name: Download Linux Artifacts for aarch64
- name: Create artifacts directory
run: mkdir -p artifacts
- name: Download artifacts
uses: actions/download-artifact@v3
with:
name: output-aarch64
path: ${{ env.OUTPUTDIR }}-aarch64/${{ env.INNERDIR }}
- name: Restore File Modes
path: artifacts
- name: Create release draft
shell: bash
run: |
chmod 755 ${{ env.OUTPUTDIR }}-x86_64/${{ env.INNERDIR }}/youki
chmod 755 ${{ env.OUTPUTDIR }}-aarch64/${{ env.INNERDIR }}/youki
- name: Create tarball
run: |
tar -zcvf ${{ env.OUTPUTDIR }}-x86_64.tar.gz ${{ env.OUTPUTDIR }}-x86_64
tar -zcvf ${{ env.OUTPUTDIR }}-aarch64.tar.gz ${{ env.OUTPUTDIR }}-aarch64
- name: Create Release Draft
uses: softprops/action-gh-release@v1
with:
name: ${{ env.VERSION }} Release
draft: true
token: ${{ secrets.GITHUB_TOKEN }}
files: |
./${{ env.OUTPUTDIR }}-x86_64.tar.gz
./${{ env.OUTPUTDIR }}-aarch64.tar.gz
set -x
gh release create "${{ github.ref }}" --generate-notes --draft
gh release upload "${{ github.ref }}" artifacts/*/*
env:
GH_TOKEN: ${{ github.token }}
RELEASE_NAME: "${{ needs.parse.outputs.version }} Release"

publish:
name: Publish Packages
needs: build
runs-on: ubuntu-20.04
if: ${{ github.repository == 'containers/youki' }}
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
steps:
Expand Down
12 changes: 4 additions & 8 deletions scripts/release_tag.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,21 +7,17 @@ if [ -z "$TAG" ]; then
exit 1
fi
VERSION=${TAG##*v}
MAJOR=${VERSION%%.*}
MINOR=${VERSION%.*}
MINOR=${MINOR#*.}
PATCH=${VERSION##*.}

START_MARKER="<!--youki release begin-->"
END_MARKER="<!--youki release end-->"


echo "\`\`\`console
\$ wget -qO youki_${VERSION}_linux.tar.gz https://github.com/containers/youki/releases/download/v${VERSION}/youki_${MAJOR}_${MINOR}_${PATCH}_linux-\$(uname -m).tar.gz
\$ tar -zxvf youki_${VERSION}_linux.tar.gz --strip-components=1
\$ wget -qO youki-${VERSION}.tar.gz https://github.com/containers/youki/releases/download/v${VERSION}/youki-${VERSION}-\$(uname -m).tar.gz
\$ tar -zxvf youki-${VERSION}.tar.gz youki
# Maybe you need root privileges.
\$ mv youki-${VERSION}/youki /usr/local/bin/youki
\$ rm -rf youki_${VERSION}_linux.tar.gz youki-${VERSION}
\$ mv youki /usr/local/bin/youki
\$ rm youki-${VERSION}.tar.gz
\`\`\`" > replace_content.txt

awk -v start="$START_MARKER" -v end="$END_MARKER" -v newfile="replace_content.txt" '
Expand Down

0 comments on commit 6bd1281

Please sign in to comment.