VPN-6626: Install socks proxy as a service #604
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: Flatpak Packages | |
on: | |
push: | |
branches: | |
- main | |
- "releases/**" | |
pull_request: | |
branches: | |
- main | |
- "releases/**" | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
manifest: | |
name: "Generate Manifest" | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
with: | |
sparse-checkout: linux/flatpak/ | |
- name: Install pip tools | |
shell: bash | |
run: pip install PyYAML yq | |
- name: Update git reference | |
shell: bash | |
working-directory: linux/flatpak | |
run: | | |
python -m yq -yi 'del(.modules[-1].sources[0].branch)' org.mozilla.vpn.yml | |
python -m yq -yi ".modules[-1].sources[0].url = \"https://github.com/${{ github.repository }}\"" org.mozilla.vpn.yml | |
python -m yq -yi ".modules[-1].sources[0].commit = \"${{ github.sha }}\"" org.mozilla.vpn.yml | |
cat org.mozilla.vpn.yml | |
- name: Add Appstream metainfo | |
shell: bash | |
working-directory: linux/flatpak | |
run: | | |
curl -sSL -o org.mozilla.vpn.releases.xml \ | |
https://mozilla.github.io/mozillavpn-product-details/org.mozilla.vpn.releases.xml | |
python -m yq -yi '.modules += ["mozillavpn-appstream.yaml"]' org.mozilla.vpn.yml | |
- name: Upload manifest | |
uses: actions/upload-artifact@v4 | |
with: | |
name: mozillavpn-manifest | |
path: linux/flatpak | |
linter: | |
name: "Linters" | |
runs-on: ubuntu-latest | |
needs: | |
- manifest | |
steps: | |
- name: Download manifest | |
uses: actions/download-artifact@v4 | |
with: | |
name: mozillavpn-manifest | |
path: manifest/ | |
- name: Install Flatpak Linting Tools | |
shell: bash | |
run: | | |
sudo apt-get update | |
sudo apt-get install flatpak flatpak-builder -y | |
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo | |
flatpak install --user flathub -y org.flatpak.Builder | |
- name: Run Manifest Linters | |
shell: bash | |
run: flatpak run --command=flatpak-builder-lint org.flatpak.Builder manifest manifest/org.mozilla.vpn.yml | |
- name: Run Appstream Linters | |
shell: bash | |
run: flatpak run --command=flatpak-builder-lint org.flatpak.Builder appstream manifest/org.mozilla.vpn.metainfo.xml | |
build: | |
name: "Build" | |
runs-on: ubuntu-latest | |
needs: | |
- manifest | |
container: | |
image: ghcr.io/flathub-infra/flatpak-github-actions:kde-6.6 | |
options: --privileged | |
steps: | |
- name: Download manifest | |
uses: actions/download-artifact@v4 | |
with: | |
name: mozillavpn-manifest | |
path: manifest/ | |
- name: Build | |
uses: flathub-infra/flatpak-github-actions/flatpak-builder@master | |
with: | |
bundle: mozillavpn.flatpak | |
manifest-path: manifest/org.mozilla.vpn.yml | |
cache-key: flatpak-builder-${{ github.sha }} | |
dependabot-cargo: | |
name: "Update Crates" | |
runs-on: ubuntu-latest | |
if: ${{ startsWith(github.head_ref, 'dependabot/cargo/') && github.event_name == 'pull_request' }} | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.head_ref }} | |
token: ${{ secrets.DEPENDABOT_TOKEN }} | |
- name: Install pip tools | |
shell: bash | |
run: pip install requirements-parser PyYAML toml aiohttp | |
# Do not continue if there are changes to the flatpak directory. | |
- name: Inspect pull request | |
id: inspect | |
shell: bash | |
run: | | |
git fetch origin "${{ github.base_ref }}" --depth=1 | |
echo -n "flatpak-changes=" >> $GITHUB_OUTPUT | |
git diff --name-only --relative=linux/flatpak "origin/${{ github.base_ref }}" | wc -l >> $GITHUB_OUTPUT | |
- name: Update flatpak rust crates | |
shell: bash | |
if: ${{ steps.inspect.outputs.flatpak-changes == 0 }} | |
run: ./linux/flatpak/flatpak-update-crates.sh ./Cargo.lock | |
- name: Commit the changes | |
shell: bash | |
if: ${{ steps.inspect.outputs.flatpak-changes == 0 }} | |
run: | | |
if git diff --name-only | grep -q '^linux/flatpak/flatpak-vpn-crates.json'; then | |
git add linux/flatpak/flatpak-vpn-crates.json | |
git config user.name "${GITHUB_ACTOR}" | |
git config user.email "${GITHUB_ACTOR}@users.noreply.github.com" | |
git commit -m "[dependabot skip] Update linux/flatpak/flatpak-vpn-crates.json" | |
git format-patch --stdout HEAD~1 | |
git push | |
fi |