Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci(release): add dispatch GHA for snapcraft classic release #1256

Merged
merged 17 commits into from
May 14, 2024
Merged
Show file tree
Hide file tree
Changes from 13 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 61 additions & 0 deletions .github/workflows/release-snap.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# Copyright The ORAS Authors.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

name: release-snap

on:
workflow_dispatch:
inputs:
version:
description: 'release version, like v1.2.0-beta.1'
required: true
isStable:
type: boolean
description: 'check for stable release'
default: false

jobs:
release-snap:
strategy:
matrix:
arch: [amd64,arm64,s390x]
qweeah marked this conversation as resolved.
Show resolved Hide resolved
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout
uses: actions/checkout@v3
- name: extract version
id: version
run: |
if [[ "${{ github.event.inputs.version }}" == "true" ]]; then
qweeah marked this conversation as resolved.
Show resolved Hide resolved
echo "release=stable" >> $GITHUB_OUTPUT
else
echo "release=candidate" >> $GITHUB_OUTPUT
fi
echo "version=${{ github.event.inputs.version }}" >> $GITHUB_OUTPUT
- name: make snapcraft
run: |
sed -i 's/{VERSION}/${{ steps.version.outputs.version }}/g' snapcraft.yaml
sed -i 's/{ARCH}/${{ matrix.arch }}/g' snapcraft.yaml
cat snapcraft.yaml
qweeah marked this conversation as resolved.
Show resolved Hide resolved
- uses: snapcore/action-build@v1
id: build
- uses: snapcore/action-publish@v1
name: publish
env:
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.STORE_LOGIN }}
qweeah marked this conversation as resolved.
Show resolved Hide resolved
with:
snap: ${{ steps.build.outputs.snap }}
release: ${{ steps.version.outputs.release }}

18 changes: 5 additions & 13 deletions snapcraft.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,17 @@
# limitations under the License.

name: oras
version: 'v1.0.0'
version: '{VERSION}'
summary: Package for the ORAS CLI tool
description: |
A snap package for the ORAS CLI tool, which is used for managing OCI artifacts.
base: core22
confinement: strict
confinement: classic
grade: stable

architectures:
- build-on: amd64
build-for: amd64
- build-on: amd64
build-for: arm64
- build-on: amd64
build-for: s390x
build-for: {ARCH}

parts:
oras:
Expand All @@ -35,12 +31,8 @@ parts:
source-type: git
source-tag: $SNAPCRAFT_PROJECT_VERSION
build-environment:
- on amd64 to amd64:
- TARGET_ARCH: "amd64"
- on amd64 to arm64:
- TARGET_ARCH: "arm64"
- on amd64 to s390x:
- TARGET_ARCH: "s390x"
- on amd64 to {ARCH}:
- TARGET_ARCH: "{ARCH}"
build-snaps:
- go/1.22/stable
build-packages:
Expand Down
Loading