From bb82c111f340e4d3579e833f7e7d54567df9080e Mon Sep 17 00:00:00 2001 From: Mariusz Kogen Date: Sun, 17 Dec 2023 16:44:16 +0100 Subject: [PATCH] Update workflows to latest versions --- .github/workflows/buildService.yml | 9 +-- .github/workflows/releaseService.yml | 87 +++++++++++++--------------- 2 files changed, 45 insertions(+), 51 deletions(-) diff --git a/.github/workflows/buildService.yml b/.github/workflows/buildService.yml index 0731041..f013351 100644 --- a/.github/workflows/buildService.yml +++ b/.github/workflows/buildService.yml @@ -20,16 +20,17 @@ jobs: uses: actions/checkout@v3 - name: Build the service package + id: build run: | git submodule update --init --recursive start-sdk init make - PACKAGE_ID=$(yq e ".id" manifest.yaml 2>/dev/null || jq -r '.id' manifest.json 2>/dev/null) - mv ${PACKAGE_ID}*.s9pk ~/ + PACKAGE_ID=$(yq -oy ".id" manifest.*) + echo "::set-output name=package_id::$PACKAGE_ID" shell: bash - name: Upload .s9pk uses: actions/upload-artifact@v3 with: - name: ${{ env.PACKAGE_ID }}.s9pk - path: ~/*.s9pk + name: ${{ steps.build.outputs.package_id }}.s9pk + path: ./${{ steps.build.outputs.package_id }}.s9pk \ No newline at end of file diff --git a/.github/workflows/releaseService.yml b/.github/workflows/releaseService.yml index d14894d..2cdcde6 100644 --- a/.github/workflows/releaseService.yml +++ b/.github/workflows/releaseService.yml @@ -1,78 +1,71 @@ name: Release Service on: - workflow_dispatch: push: tags: - - "v*.*" + - 'v*.*' jobs: ReleasePackage: runs-on: ubuntu-latest + permissions: + contents: write steps: - - name: Set up QEMU - uses: docker/setup-qemu-action@v2 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - - name: Set up Rust Toolchain - uses: actions-rust-lang/setup-rust-toolchain@v1 - with: - toolchain: stable - - name: Get StartOS Hash - run: echo "STARTOSHASH=$(git ls-remote https://github.com/Start9Labs/start-os --branch sdk | awk '{ print $1}')" >> $GITHUB_ENV - - name: Cache Packages - uses: buildjet/cache@v3 - id: packageCache - with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - target/ - key: ${{ runner.os }}-vaultwarden-${{ env.STARTOSHASH }} - - name: Install Dependencies - run: | - sudo snap install yq deno - sudo apt-get install -y build-essential openssl libssl-dev libc6-dev clang libclang-dev ca-certificates + - name: Prepare StartOS SDK + uses: Start9Labs/sdk@v1 + - name: Checkout services repository uses: actions/checkout@v3 - - name: Install Package Manager - id: packageManager - if: steps.packageCache.outputs.cache-hit != 'true' - run: | - cd ~/ && git clone https://github.com/Start9Labs/start-os.git --branch sdk; - cd start-os; - git submodule update --init --recursive - cd backend; - export RUSTFLAGS=""; - export OS_ARCH=$(uname -m); - ./install-sdk.sh; + - name: Build the service package run: | git submodule update --init --recursive start-sdk init make + + - name: Setting package ID and title from the manifest + id: package + run: | + echo "::set-output name=package_id::$(yq -oy ".id" manifest.*)" + echo "::set-output name=package_title::$(yq -oy ".title" manifest.*)" + shell: bash + - name: Generate sha256 checksum run: | - sha256sum vaultwarden.s9pk > vaultwarden.s9pk.sha256 + PACKAGE_ID=${{ steps.package.outputs.package_id }} + sha256sum ${PACKAGE_ID}.s9pk > ${PACKAGE_ID}.s9pk.sha256 + shell: bash + - name: Generate changelog run: | + PACKAGE_ID=${{ steps.package.outputs.package_id }} echo "## What's Changed" > change-log.txt - yq e '.release-notes' --output-format=yaml manifest.json >> change-log.txt + yq e '.release-notes' manifest.yaml >> change-log.txt echo "## SHA256 Hash" >> change-log.txt echo '```' >> change-log.txt - sha256sum vaultwarden.s9pk >> change-log.txt + sha256sum ${PACKAGE_ID}.s9pk >> change-log.txt echo '```' >> change-log.txt - - name: Create Release + shell: bash + + - name: Create GitHub Release uses: softprops/action-gh-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ github.ref_name }} - name: vaultwarden ${{ github.ref_name }} + name: ${{ steps.package.outputs.package_title }} ${{ github.ref_name }} prerelease: true body_path: change-log.txt files: | - vaultwarden.s9pk - vaultwarden.s9pk.sha256 + ./${{ steps.package.outputs.package_id }}.s9pk + ./${{ steps.package.outputs.package_id }}.s9pk.sha256 + + - name: Publish to Registry + env: + S9USER: ${{ secrets.S9USER }} + S9PASS: ${{ secrets.S9PASS }} + S9REGISTRY: ${{ secrets.S9REGISTRY }} + run: | + if [[ -z "$S9USER" || -z "$S9PASS" || -z "$S9REGISTRY" ]]; then + echo "Publish skipped: missing registry credentials." + else + start-sdk publish https://$S9USER:$S9PASS@$S9REGISTRY ${{ steps.package.outputs.package_id }}.s9pk + fi