update deprecated Action versions. #57
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Rust | |
on: | |
push: | |
branches: [ "main" ] | |
pull_request: | |
branches: [ "main" ] | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
build_x86_64: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Cache | |
uses: actions/[email protected] | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
target | |
key: ${{ runner.os }}-1-cargo-${{ hashFiles('**/Cargo.lock') }}-${{ hashFiles('src/**.rs') }} | |
- uses: actions/[email protected] | |
- name: Build x86_64 releases | |
run: script/build-x86_64 | |
- name: Compress release assets | |
run: | | |
sudo chown -R runner:docker ./target | |
pushd ./target/x86_64-unknown-linux-musl/release/ | |
zip -9 gh-device-flow.x86_64-linux.zip ./github-device-flow | |
popd | |
mv ./target/x86_64-unknown-linux-musl/release//gh-device-flow.x86_64-linux.zip . | |
- name: Upload compiled artifact | |
uses: actions/[email protected] | |
with: | |
name: gh-device-flow.x86_64-linux.zip | |
path: gh-device-flow.x86_64-linux.zip | |
build_arm: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Cache | |
uses: actions/[email protected] | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
target | |
key: ${{ runner.os }}-1-cargo-${{ hashFiles('**/Cargo.lock') }}-${{ hashFiles('src/**.rs') }} | |
- uses: actions/[email protected] | |
- name: Build ARM releases | |
run: script/build-arm | |
- name: Compress release assets | |
run: | | |
sudo chown -R runner:docker ./target | |
pushd ./target/arm-unknown-linux-musleabihf/release/ | |
zip -9 gh-device-flow.arm-linux.zip ./github-device-flow | |
popd | |
mv ./target/arm-unknown-linux-musleabihf/release/gh-device-flow.arm-linux.zip . | |
- name: Upload compiled artifact | |
uses: actions/[email protected] | |
with: | |
name: gh-device-flow.arm-linux.zip | |
path: gh-device-flow.arm-linux.zip | |
build_armv7: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Cache | |
uses: actions/[email protected] | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
target | |
key: ${{ runner.os }}-1-cargo-${{ hashFiles('**/Cargo.lock') }}-${{ hashFiles('src/**.rs') }} | |
- uses: actions/[email protected] | |
- name: Build ARM releases | |
run: script/build-armv7 | |
- name: Compress release assets | |
run: | | |
sudo chown -R runner:docker ./target | |
pushd ./target/armv7-unknown-linux-musleabihf/release/ | |
zip -9 gh-device-flow.armv7-linux.zip ./github-device-flow | |
popd | |
mv ./target/armv7-unknown-linux-musleabihf/release/gh-device-flow.armv7-linux.zip . | |
- name: Upload compiled artifact | |
uses: actions/[email protected] | |
with: | |
name: gh-device-flow.armv7-linux.zip | |
path: gh-device-flow.armv7-linux.zip | |
build_macos: | |
name: Build macos release | |
runs-on: macos-latest | |
steps: | |
- uses: actions/[email protected] | |
- uses: actions/[email protected] | |
id: cache-build | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
target | |
key: ${{ runner.os }}-macos-1-cargo-${{ hashFiles('**/Cargo.lock') }}-${{ hashFiles('src/**.rs') }} | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
target: x86_64-apple-darwin | |
override: true | |
- name: Build release | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --release | |
- name: Import Code-Signing Certificates | |
uses: Apple-Actions/import-codesign-certs@v1 | |
with: | |
# The certificates in a PKCS12 file encoded as a base64 string | |
p12-file-base64: ${{ secrets.MACOS_CERTIFICATE }} | |
# The password used to import the PKCS12 file. | |
p12-password: ${{ secrets.MACOS_CERTIFICATE_PW }} | |
- name: Install gon via HomeBrew for code signing and app notarization | |
run: | | |
brew tap mitchellh/gon | |
brew install mitchellh/gon/gon | |
- name: Move asset | |
run: | | |
mv ./target/release/github-device-flow . | |
- name: Sign the mac binaries with Gon | |
env: | |
AC_USERNAME: ${{ secrets.AC_USERNAME }} | |
AC_PASSWORD: ${{ secrets.AC_PASSWORD }} | |
run: | | |
gon -log-level=debug -log-json ./.github/gon.json | |
- name: Upload compiled artifact | |
uses: actions/[email protected] | |
with: | |
name: gh-device-flow.macos.zip | |
path: gh-device-flow.macos.zip | |
create_release: | |
runs-on: ubuntu-latest | |
needs: [build_arm, build_armv7, build_macos, build_x86_64] | |
if: github.ref == 'refs/heads/main' | |
steps: | |
- name: Create release | |
id: create_release | |
uses: actions/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token | |
with: | |
tag_name: release-${{ github.sha }} | |
release_name: Release ${{ github.sha }} | |
body: | | |
Changes in this Release - Things. | |
draft: false | |
prerelease: false | |
- name: Download all workflow run artifacts | |
uses: actions/[email protected] | |
- name: Upload Release Asset x86_64 | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./gh-device-flow.x86_64-linux.zip/gh-device-flow.x86_64-linux.zip | |
asset_name: gh-device-flow.x86_64-linux.zip | |
asset_content_type: application/zip | |
- name: Upload Release Asset ARM | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./gh-device-flow.arm-linux.zip/gh-device-flow.arm-linux.zip | |
asset_name: gh-device-flow.arm-linux.zip | |
asset_content_type: application/zip | |
- name: Upload Release Asset ARMv7 | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./gh-device-flow.armv7-linux.zip/gh-device-flow.armv7-linux.zip | |
asset_name: gh-device-flow.armv7-linux.zip | |
asset_content_type: application/zip | |
- name: Upload Release Asset macos | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./gh-device-flow.macos.zip/gh-device-flow.macos.zip | |
asset_name: gh-device-flow.macos.zip | |
asset_content_type: application/zip |