Skip to content

feat: support downloading from customized url #52

feat: support downloading from customized url

feat: support downloading from customized url #52

Workflow file for this run

# 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: Tests
on:
push:
branches:
- main
- release-*
pull_request:
branches:
- main
- release-*
# env:
# URL: $(jq -r 'keys_unsorted[0] as $k | .[$k].linux.amd64.url' src/lib/data/releases.json)
# CHECKSUM: $(jq -r 'keys_unsorted[0] as $k | .[$k].linux.amd64.checksum' src/lib/data/releases.json)
defaults:
run:
shell: bash
jobs:
test-basic-setup:
name: Test Setup ORAS CLI
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-latest, windows-latest, ubuntu-latest]
version:
- 1.0.1
- 1.1.0
fail-fast: true
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup ORAS v${{ matrix.version }}
uses: ./
with:
version: ${{ matrix.version }}
- name: Verify ORAS version installed
env:
ORAS_VERSION_EXPECTED: ${{ matrix.version }}
run: |
echo ---
oras version
echo ---
read -ra ORAS_VERSION_INSTALLED <<<$(oras version)
[ "${ORAS_VERSION_INSTALLED[1]}" == "$ORAS_VERSION_EXPECTED" ]
create-test-variables:
runs-on: ubuntu-latest
outputs:
output1: ${{ steps.step1.outputs.URL }}
output2: ${{ steps.step2.outputs.CHECKSUM }}
steps:
- id: checkout
uses: actions/checkout@v3
- id: step1
run: echo "URL=$(jq -r 'keys_unsorted[0] as $k | .[$k].linux.amd64.url' ./src/lib/data/releases.json)" >> "$GITHUB_OUTPUT"
- id: debug0
run: ls
- id: debug00
run: echo $PWD
- id: debug1
run: echo $URL
- id: step2
run: echo "CHECKSUM=$(jq -r 'keys_unsorted[0] as $k | .[$k].linux.amd64.checksum' ./src/lib/data/releases.json)" >> "$GITHUB_OUTPUT"
- id: debug2
run: echo $CHECKSUM
test-custom-url:
name: Test Setup using URL
runs-on: ubuntu-latest
needs: create-test-variables
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup ORAS using URL
uses: ./
with:
url: ${{ needs.create-test-variables.outputs.output1 }}
checksum: "8533c9ea1e5a0d5eb1dfc5094c0e8ef106d15462f8a119077548f88937ed2133"
- name: Setup ORAS using URL without checksum
id: no-checksum
continue-on-error: true
uses: ./
with:
url: ${{ needs.create-test-variables.outputs.output1 }}
- name: 'Should Fail: Setup ORAS using URL without checksum'
if: steps.no-checksum.outcome != 'failure'
run: |
echo "Setup ORAS using URL without checksum should fail, but succeeded."
exit 1
- name: Setup ORAS using URL and invalid checksum
id: invalid-checksum
continue-on-error: true
uses: ./
with:
url: ${{ needs.create-test-variables.outputs.output1 }}
checksum: abcedf
- name: 'Should Fail: Setup ORAS using URL and invalid checksum'
if: steps.invalid-checksum.outcome != 'failure'
run: |
echo "Setup ORAS using URL and invalid checksum should fail, but succeeded."
exit 1
- name: Setup ORAS using invalid URL
id: invalid-url
continue-on-error: true
uses: ./
with:
url: invalid-url
checksum: test
- name: 'Should Fail: Setup ORAS using invalid URL'
if: steps.invalid-url.outcome != 'failure'
run: |
echo "Setup ORAS using invalid URL should fail, but succeeded."
exit 1