Skip to content

Release

Release #12

Workflow file for this run

name: Release
on:
create:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+'
env:
GO_VERSION: '1.20.6'
permissions:
contents: write
deployments: write
jobs:
# Any way we can just call build.yml?
test:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v4
with:
go-version: ${{ env.GO_VERSION }}
- run: make
- run: make test
integration:
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
containerd: ["1.6.19", "1.7.0"]
env:
DOCKER_BUILD_ARGS: "CONTAINERD_VERSION=${{ matrix.containerd }}"
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v4
with:
go-version: ${{ env.GO_VERSION }}
- run: make integration
generate-artifacts:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- name: Setup and export variables
run: |
export release_tag=${GITHUB_REF#refs/*/} # Strip down to raw tag name
export release_version=${release_tag/v/} # Remove v from tag name
echo "release_tag=${release_tag}">> $GITHUB_ENV
echo "dynamic_binary_name=soci-snapshotter-${release_version}-linux-amd64.tar.gz" >> $GITHUB_ENV
echo "static_binary_name=soci-snapshotter-${release_version}-linux-amd64-static.tar.gz" >> $GITHUB_ENV
mkdir release
- name: Create release binaries
run: make RELEASE_TAG=${{ env.release_tag }} release
- uses: actions/upload-artifact@v3
with:
name: artifacts
path: release/
if-no-files-found: error
outputs:
dynamic_binary_name: ${{ env.dynamic_binary_name }}
static_binary_name: ${{ env.static_binary_name }}
create-release:
needs: generate-artifacts
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v3
with:
name: artifacts
- uses: softprops/action-gh-release@v1
with:
draft: true
prerelease: false
generate_release_notes: true
files: |
${{ needs.generate-artifacts.outputs.dynamic_binary_name }}
${{ needs.generate-artifacts.outputs.dynamic_binary_name }}.sha256sum
${{ needs.generate-artifacts.outputs.static_binary_name }}
${{ needs.generate-artifacts.outputs.static_binary_name }}.sha256sum