250 lines
11 KiB
YAML
250 lines
11 KiB
YAML
name: Create Release & Upload Assets
|
|
|
|
on:
|
|
push:
|
|
# Sequence of patterns matched against refs/tags
|
|
tags:
|
|
- 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10
|
|
|
|
jobs:
|
|
lintTestBuild:
|
|
name: Lint, Test, Build
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
- name: Setup Go
|
|
uses: actions/setup-go@v2
|
|
with:
|
|
go-version: '^1.15.6'
|
|
- name: Install Deps
|
|
id: install-deps
|
|
run: sudo apt-get -y install libpcsclite-dev
|
|
- name: Lint, Test, Build
|
|
id: lintTestBuild
|
|
run: V=1 make -j1 bootstrap travis
|
|
|
|
create_release:
|
|
name: Create Release
|
|
runs-on: ubuntu-latest
|
|
needs: lintTestBuild
|
|
outputs:
|
|
version: ${{ steps.extract-tag.outputs.VERSION }}
|
|
vversion: ${{ steps.extract-tag.outputs.VVERSION }}
|
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
|
is_prerelease: ${{ steps.is_prerelease.outputs.IS_PRERELEASE }}
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
- name: Extract Tag Names
|
|
id: extract-tag
|
|
run: |
|
|
VVERSION=${GITHUB_REF#refs/tags/}
|
|
VERSION=${GITHUB_REF#refs/tags/v}
|
|
echo "::set-output name=VVERSION::${VVERSION}"
|
|
echo "::set-output name=VERSION::${VERSION}"
|
|
- name: Is Pre-release
|
|
id: is_prerelease
|
|
run: |
|
|
set +e
|
|
echo ${{ github.ref }} | grep "\-rc.*"
|
|
OUT=$?
|
|
if [ $OUT -eq 0 ]; then IS_PRERELEASE=true; else IS_PRERELEASE=false; fi
|
|
echo "::set-output name=IS_PRERELEASE::${IS_PRERELEASE}"
|
|
- name: Create Release
|
|
id: create_release
|
|
uses: actions/create-release@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
tag_name: ${{ github.ref }}
|
|
release_name: Release ${{ github.ref }}
|
|
draft: false
|
|
prerelease: ${{ steps.is_prerelease.outputs.IS_PRERELEASE }}
|
|
|
|
build_upload_github_assets:
|
|
name: Build & Upload Mac OS | Linux | Windows Assets To Github Release
|
|
runs-on: ubuntu-latest
|
|
needs: create_release
|
|
steps:
|
|
-
|
|
name: Checkout
|
|
uses: actions/checkout@v2
|
|
with:
|
|
fetch-depth: 0
|
|
-
|
|
name: Set up Go
|
|
uses: actions/setup-go@v2
|
|
with:
|
|
go-version: 1.16
|
|
-
|
|
name: Run GoReleaser
|
|
uses: goreleaser/goreleaser-action@56f5b77f7fa4a8fe068bf22b732ec036cc9bc13f # v2.4.1
|
|
with:
|
|
version: latest
|
|
args: release --rm-dist
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.PAT }}
|
|
|
|
# build_upload_docker:
|
|
# name: Build & Upload Docker Images
|
|
# runs-on: ubuntu-latest
|
|
# needs: create_release
|
|
# if: needs.create_release.outputs.is_prerelease == 'false'
|
|
# steps:
|
|
# - name: Checkout
|
|
# uses: actions/checkout@v2
|
|
# - name: Setup Go
|
|
# uses: actions/setup-go@v2
|
|
# with:
|
|
# go-version: '^1.15.6'
|
|
# - name: Build
|
|
# id: build
|
|
# run: |
|
|
# PATH=$PATH:/usr/local/go/bin:/home/admin/go/bin
|
|
# make docker-artifacts
|
|
# env:
|
|
# DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
|
|
# DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
|
|
#
|
|
# build_upload_aws_s3_binaries:
|
|
# name: Build & Upload AWS S3 Binaries
|
|
# runs-on: ubuntu-latest
|
|
# needs: create_release
|
|
# if: needs.create_release.outputs.is_prerelease == 'false'
|
|
# steps:
|
|
# - name: Checkout
|
|
# uses: actions/checkout@v2
|
|
# - name: Setup Go
|
|
# uses: actions/setup-go@v2
|
|
# with:
|
|
# go-version: '^1.15.6'
|
|
# - name: Build
|
|
# id: build
|
|
# run: |
|
|
# PATH=$PATH:/usr/local/go/bin:/home/admin/go/bin
|
|
# make -j1 binary-linux binary-darwin binary-windows
|
|
# mkdir -p ./.releases
|
|
# cp ./output/binary/linux/bin/step ./.releases/step-linux-${{ needs.create_release.outputs.version }}
|
|
# cp ./output/binary/linux/bin/step ./.releases/step-linux-latest-integration
|
|
# cp ./output/binary/darwin/bin/step ./.releases/step-darwin-${{ needs.create_release.outputs.version }}
|
|
# cp ./output/binary/windows/bin/step ./.releases/step-windows-${{ needs.create_release.outputs.version }}.exe
|
|
# - name: Upload s3
|
|
# id: upload-s3
|
|
# uses: jakejarvis/s3-sync-action@v0.5.1
|
|
# with:
|
|
# args: --acl public-read --follow-symlinks
|
|
# env:
|
|
# AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }}
|
|
# AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
# AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
# AWS_REGION: us-east-1
|
|
# SOURCE_DIR: ./.releases
|
|
#
|
|
# upload_windows_installer:
|
|
# name: Upload Windows Installer
|
|
# runs-on: ubuntu-latest
|
|
# needs: create_release
|
|
# if: needs.create_release.outputs.is_prerelease == 'false'
|
|
# steps:
|
|
# - name: Checkout
|
|
# uses: actions/checkout@v2
|
|
# - name: Download Existing Installer
|
|
# id: download
|
|
# uses: prewk/s3-cp-action@v0.1.1
|
|
# env:
|
|
# AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
# AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
# AWS_REGION: us-east-1
|
|
# SOURCE: s3://${{ secrets.AWS_s3_BUCKET }}/install-step.ps1
|
|
# DEST: ./install-step.ps1
|
|
# - name: Modify Installer
|
|
# id: modify
|
|
# run: sed -i -e "s~step-windows-.*.exe~step-windows-foo.exe~g" ./install-step.ps1
|
|
# - name: Upload and Overwrite
|
|
# id: upload
|
|
# uses: prewk/s3-cp-action@v0.1.1
|
|
# with:
|
|
# args: --acl public-read --follow-symlinks
|
|
# env:
|
|
# AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
# AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
# AWS_REGION: us-east-1
|
|
# DEST: s3://${{ secrets.AWS_s3_BUCKET }}/install-step.ps1
|
|
# SOURCE: ./install-step.ps1
|
|
#
|
|
# update_arch:
|
|
# name: Update Arch Linux Packager
|
|
# runs-on: ubuntu-latest
|
|
# needs: [create_release, build_upload_github_assets]
|
|
# if: needs.create_release.outputs.is_prerelease == 'false'
|
|
# steps:
|
|
# - name: Checkout
|
|
# uses: actions/checkout@v2
|
|
# - name: Calculate New SHAs
|
|
# id: calculate-shas
|
|
# run: |
|
|
# PKG=step-cli-bin
|
|
# VVER=${{ needs.create_release.outputs.vversion }}
|
|
# VER=${{ needs.create_release.outputs.version }}
|
|
# ARM64_URL="https://github.com/smallstep/cli/releases/download/${VVER}/step_linux_${VER}_arm64.tar.gz"
|
|
# AMD64_URL="https://github.com/smallstep/cli/releases/download/${VVER}/step_linux_${VER}_amd64.tar.gz"
|
|
# # Get arm64 SHA for step-cli
|
|
# curl -o "${PKG}-arm64.tar.gz" -J -L -s --show-error -f "${ARM64_URL}"
|
|
# ARM64_SHA="$(shasum -a 256 "${PKG}-arm64.tar.gz" | awk '{printf $1}')"
|
|
# # Get amd64 SHA for step-cli
|
|
# curl -o "${PKG}-amd64.tar.gz" -J -L -s --show-error -f "${AMD64_URL}"
|
|
# AMD64_SHA="$(shasum -a 256 "${PKG}-amd64.tar.gz" | awk '{printf $1}')"
|
|
# # Clone arch linux step-cli-bin repo
|
|
# echo "${{ secrets.ARCH_SSH_KEY }}" > /tmp/ssh_arch_key && chmod 0400 /tmp/ssh_arch_key
|
|
# ssh-agent bash -c 'ssh-add /tmp/ssh_arch_key; GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" git clone ssh://aur@aur.archlinux.org/step-cli-bin.git'
|
|
# cd step-cli-bin
|
|
# # Modify values in files
|
|
# sed -i -e "s/^pkgver=.*/pkgver=${VER}/" "./PKGBUILD"
|
|
# sed -i -e "s/^sha256sums_aarch64=.*/sha256sums_aarch64=(\"${ARM64_SHA}\")/" "./PKGBUILD"
|
|
# sed -i -e "s/^sha256sums_x86_64=.*/sha256sums_x86_64=(\"${AMD64_SHA}\")/" "./PKGBUILD"
|
|
# - name: Makepkg Build and Check
|
|
# id: makepkg
|
|
# uses: smallstep/pkgbuild-action@v1.0.2
|
|
# with:
|
|
# pkgdir: ./step-cli-bin
|
|
# - name: Update ARCH Repo
|
|
# id: update
|
|
# run: |
|
|
# # Git commit and push
|
|
# cd ./step-cli-bin
|
|
# git add "./PKGBUILD" "./.SRCINFO"
|
|
# git commit -m "Update to ${{ needs.create_release.outputs.vversion }}"
|
|
# ssh-agent bash -c 'ssh-add /tmp/ssh_arch_key; GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" git push origin HEAD:master'
|
|
#
|
|
# update_reference_docs:
|
|
# name: Update Reference Docs
|
|
# runs-on: ubuntu-latest
|
|
# needs: create_release
|
|
# if: needs.create_release.outputs.is_prerelease == 'false'
|
|
# steps:
|
|
# - name: Checkout
|
|
# uses: actions/checkout@v2
|
|
# - name: Setup Go
|
|
# uses: actions/setup-go@v2
|
|
# with:
|
|
# go-version: '^1.15.6'
|
|
# - name: Build
|
|
# id: build
|
|
# run: make build
|
|
# - name: Checkout Docs
|
|
# uses: actions/checkout@master
|
|
# with:
|
|
# repository: smallstep/docs
|
|
# token: ${{ secrets.PAT }}
|
|
# path: './docs'
|
|
# - name: Update Reference
|
|
# id: update_refrence
|
|
# run: ./bin/step help --markdown ./docs/step-cli/reference
|
|
# - name: Push changes
|
|
# uses: ad-m/github-push-action@v0.6.0
|
|
# with:
|
|
# github_token: ${{ secrets.PAT }}
|
|
# branch: 'master'
|
|
# directory: './docs'
|
|
# repository: 'smallstep/docs'
|