Skip to content

Commit

Permalink
Merge pull request #125 from canonical/ci/oci-factory
Browse files Browse the repository at this point in the history
ci: add oci-factory machinery
  • Loading branch information
shipperizer authored Nov 7, 2024
2 parents f27a2bf + 3c82cbc commit 25bb753
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 1 deletion.
3 changes: 2 additions & 1 deletion .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ jobs:
if: ${{ (github.ref == 'refs/heads/main') || (github.ref_type == 'tag') }}
needs: build
uses: ./.github/workflows/publish.yaml

secrets:
token: ${{ secrets.PAT_TOKEN }}
scan:
if: ${{ (github.ref == 'refs/heads/main') || (github.ref_type == 'tag') }}
needs: publish
Expand Down
33 changes: 33 additions & 0 deletions .github/workflows/publish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ name: Publish

on:
workflow_call:
secrets:
token:
required: true

jobs:
publish:
Expand Down Expand Up @@ -45,3 +48,33 @@ jobs:
oci-archive:"${rock_file}" \
docker-daemon:"ghcr.io/canonical/${image_name}:${version}"
docker push ghcr.io/canonical/${image_name}:${version}
oci-factory:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4
- name: Golang setup
uses: actions/setup-go@v5
with:
go-version: '>=1.22.0'
# install oci-factory via golang and set path in environment
- name: Install oci-factory
run: |
sudo apt update && sudo apt install -y git
go install github.com/canonical/oci-factory/tools/cli-client/cmd/oci-factory@latest
go install github.com/mikefarah/yq/[email protected]
echo "OCI_FACTORY=$(go env GOPATH)/bin/oci-factory" >> $GITHUB_ENV
echo "YQ=$(go env GOPATH)/bin/yq" >> $GITHUB_ENV
env:
GO111MODULE: "on"
- name: Set EOLs and version
# special case for hydra due to the canonical fork
run: |
echo EOL_STABLE=$(date -d "$(date +'%Y-%m-%d') +3 month" "+%Y-%m-%d") >> $GITHUB_ENV
echo IMAGE_VERSION_STABLE=$($YQ '.version | split(".").0' rockcraft.yaml) >> $GITHUB_ENV
- name: Release
run: |
$OCI_FACTORY upload -y --release track=$IMAGE_VERSION_STABLE-22.04,risks=stable,eol=$EOL_STABLE
env:
GITHUB_TOKEN: ${{ secrets.token }}

0 comments on commit 25bb753

Please sign in to comment.