diff --git a/.github/workflows/apple_darwin_release.yml b/.github/workflows/apple_darwin_release.yml new file mode 100644 index 0000000..c12a499 --- /dev/null +++ b/.github/workflows/apple_darwin_release.yml @@ -0,0 +1,43 @@ +on: + push: + tags: + - "v*.*.*" + +jobs: + build: + runs-on: macos-latest + steps: + - name: Cache shards + uses: actions/cache@v2 + with: + path: ~/.cache/shards + key: ${{ runner.os }}-shards-${{ hashFiles('shard.yml') }} + restore-keys: ${{ runner.os }}-shards- + - name: Download source + uses: actions/checkout@v2 + - name: Install Crystal + uses: crystal-lang/install-crystal@v1 + - name: Install shards + run: shards check || shards install + - name: Check formatting + run: crystal tool format --check + - name: Run tests + run: KEMAL_ENV=test crystal spec --order=random --error-on-warnings + - name: package information + run: | + echo "BINARY_NAME=$(sed -n 's/^name: \(.*\)/\1/p' shard.yml |head -n1)" >> $GITHUB_ENV + echo "PKG_ARCH=x86_64" >> $GITHUB_ENV + echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV + - name: release binary + id: release + run: | + shards build --production --release --progress --no-debug + ASSERT_NAME=${BINARY_NAME}-${RELEASE_VERSION}-${PKG_ARCH}-apple-darwin.tar.gz + tar zcf ${ASSERT_NAME} bin/${BINARY_NAME} LICENSE + echo ::set-output name=ASSERT_NAME::${ASSERT_NAME} + - name: Release + uses: softprops/action-gh-release@v1 + if: startsWith(github.ref, 'refs/tags/') + with: + files: | + ${{ steps.release.outputs.ASSERT_NAME }}